我认为windows powershell可以用来做到这一点。我有一堆mp3文件,他们的文件名有问题。在术语“.mp3”之后,每个文件的文件名中都有一串字符,这使得它们无法被识别为mp3文件。我已经尝试手动重命名每个文件,但现在感到厌倦了。我希望自动化这个过程。
应该可以为此使用powershell,也许还有其他我不知道的选项。脚本需要读取文件夹中的每个文件名,如果名称在文件名中的“.mp3”后面有任何其他字符,则应删除所有后续字符。怎么做?
答案 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”的文件不止一次这将是一个问题。容易修复但我会通过接受这种潜力来保持它的简洁性。