2016-04-24 60 views
0

我无意中将其命名为filename.jpg.jpg。我希望的最终状态是文件名为filename.jpg。我如何使用PowerShell来解决这个问题?使用powershell将file.jpg.jpg重命名为file.jpg

我已经尝试了许多来自博客的例子,并发现第一个.jpg显然被视为文件扩展名。任何援助将不胜感激,因为我唯一的选择是手动重命名所有文件。

+0

你好,任何bash解决方案对你有好处?所有文件.jpg.jpg都在同一个目录中? – JazZ

+0

@AdrienLeber PowerShell意味着Windows,它不包含bash。 –

+0

好吧,删除我的答案。谢谢瑞恩。 – JazZ

回答

1

试试这个,

Get-childItem constant* | % {rename-item $_.name ($_.name -replace '.jpg.jpg','.jpg')} 

它将取代.jpg.jpg到JPG

+3

这也有可能匹配其他东西,如sjpg1jpg ....如果你使用正则表达式或者至少要意识到风险,你应该避开你的期限。 – Matt

+1

只有当工作目录与要重命名的文件相同时,'name'属性才有效。 –

1

您可以使用Get-ChildItem cmdlet来检索文件,并使用-Filter参数预过滤它。

,只要您工作目录是指出错误,你应该用的FullName属性而不是NameRename-Item cmdlet的。

这里我使用的regex转义期(马特提到),并确保匹配文件名的末尾($)。

Get-ChildItem -Path 'YOUR_PATH_HERE' -Filter '*.jpg.jpg' | 
    foreach { Rename-Item $_.FullName ($_.FullName-replace '\.jpg\.jpg$','.jpg') } 

注意:如果您需要递归重命名这些文件,你只需要添加-recurseGet-ChildItem cmdlet的。

+1

'Get-ChildItem -Path'YOUR_PATH_HERE'-Fi​​lter'* .jpg.jpg'|重命名 - 项目-NewName {$ _。FullName-replace'\ .jpg \ .jpg $','。jpg'}'也应该工作 – Matt

+0

*咳嗽*不要回答噱头代码问题*咳嗽* – Matt

相关问题