2015-07-11 36 views
0

我认为,Windows PowerShell可以用来做到这一点。我有一堆mp3文件,它们的文件名有问题。在术语“.mp3”之后,每个文件的文件名中都有一串字符,这可防止它们被识别为mp3文件。我曾尝试手动重命名每个文件,但现在已经厌倦了。我想让这个过程自动化。如何批量重命名文件,删除文件名中“.mp3”后的所有字符?

应该可以使用powershell来做到这一点,也许还有其他的选项,我不知道。该脚本需要读取文件夹中的每个文件名,并且如果名称在文件名中的“.mp3”后面有更多字符,则所有后续字符都应被删除。这个怎么做?

回答

0

UPDATE

确定。所以通配符与重命名命令很奇怪。

DOES工作

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

只要有尽可能多的?作为最长的文件名

指这个,如果你想详细

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

+0

当我尝试这个我得到了filename.mp3.mp3 – Matt

+0

我试过了..它的工作原理。你确定你确实做到了吗? – DOSLuke

+0

我只是试了一遍,完美的作品 – DOSLuke

1
$files=ls -Name *.mp3* 

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

然而,太长的解决方案。

0

首先我确定社区本来希望看到您尝试某些东西以便我们可以帮助您解决问题。但是其他用户提供的解决方案,所以我想从一个PowerShell的角度

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

这帮腔将采取所有文件” .MP3" 的地方在文件名。然后它会重新命名它们,包括“.mp3”之后的所有内容。如果您不止一次有“.mp3”文件,这将是一个问题。很容易修复,但我会通过接受这个潜力来保持简洁。

+0

我不知道从哪里开始,我不是这方面的专家。我本可以编写一个C程序,但是我知道一个解决方案作为1行PowerShell命令存在,所以我发布了这个问题 – quantum231