如何批量重命名文件,删除文件名中“.mp3”后面的所有字符?

时间:2015-07-11 18:48:58

标签: powershell batch-rename

我认为windows powershell可以用来做到这一点。我有一堆mp3文件,他们的文件名有问题。在术语“.mp3”之后,每个文件的文件名中都有一串字符,这使得它们无法被识别为mp3文件。我已经尝试手动重命名每个文件,但现在感到厌倦了。我希望自动化这个过程。

应该可以为此使用powershell,也许还有其他我不知道的选项。脚本需要读取文件夹中的每个文件名,如果名称在文件名中的“.mp3”后面有任何其他字符,则应删除所有后续字符。怎么做?

3 个答案:

答案 0 :(得分:1)

$files=ls -Name *.mp3*

foreach ($file in $files) {
Rename-Item $file $file.Substring(0, $file.LastIndexOf(".mp3")+4)
}

但是,解决方案太长了。

答案 1 :(得分:0)

更新

确定。所以使用重命名命令时,通配符很奇怪。

DOES 工作

ren "*.mp3*" "??????????????????????????????????????????????????????????.mp3"

只要有那么多?作为最长的文件名

如果您需要详细信息,请参阅此内容

https://superuser.com/questions/475874/how-does-the-windows-rename-command-interpret-wildcards

答案 2 :(得分:0)

首先,我确定社区会喜欢看到你尝试某些东西,这样我们就可以帮助你修复它。但是其他用户已经提供了解决方案,所以我想从PowerShell的角度讨论

Get-ChildItem C:\temp -Filter "*.mp3*" | Rename-Item -NewName {$_.Name -replace "\.mp3.*",".mp3"}

这将在文件名中的某处带有“.mp3”的所有文件。然后它将重新命名它们,然后将“.mp3”包括在内。如果你有一个“.mp3”的文件不止一次这将是一个问题。容易修复但我会通过接受这种潜力来保持它的简洁性。