【发布时间】:2018-08-06 01:00:33
【问题描述】:
我们如何将一个文件夹中的所有文件都重命名为“.something”。
我已经尝试过ren *.* *.jpeg 和其他一些,但没有任何效果
【问题讨论】:
标签: windows powershell command-line cmd
我们如何将一个文件夹中的所有文件都重命名为“.something”。
我已经尝试过ren *.* *.jpeg 和其他一些,但没有任何效果
【问题讨论】:
标签: windows powershell command-line cmd
"rename *. *.jpg" 奇怪地会弹出“命令的语法不正确”。如果该位置没有没有扩展名的文件。我以为命令一开始就停止工作了!所以只要让人们知道他们是否有同样的事情出现。
【讨论】:
试试这个:
Get-ChildItem "c:\temp" -file "*." | rename-item -NewName {"{0}.something" -f $_.fullname}
【讨论】:
您所做的一切都是正确的,但是您应该使用 *. 而不是 *.,因为 *.* 搜索所有具有所有扩展名的文件,但前者搜索所有没有扩展名的文件,这就是您想要的。所以这是你的代码:
rename *. *.something
您可以参考this的回答以获得更多帮助。
【讨论】:
略有不同:
dir -filter *. -file | rename-item -NewName {"$($_.name)`.jpg"}
【讨论】:
这已经过测试并且对我有用:
ls -file | ?{$_.extension -eq ''} | %{ren $_ ($_.name + '.jpeg')}
【讨论】:
* 匹配任何扩展名。你想匹配 no 扩展名,所以不要提供一个:ren *. *.jpeg。
以上仅在 cmd 中有效——PowerShell 的通配符以不同的方式工作,并且大多数情况下不会对扩展做任何特殊的事情。更重要的是,PowerShell 中的批量重命名工作方式不同。所以:
dir -Filter "*." -File | ren -NewName { $_.name -replace "$", ".jpeg" }
【讨论】:
对我来说就像ren * *.jpeg 工作一样简单。
【讨论】: