如何用PowerShell批量移除音乐文件名中的重复乐队及专辑名
PowerShell批量处理音乐文件名:移除乐队/专辑名,保留曲目号与歌曲名
针对你遇到的问题——不管是文件名里不小心重复了乐队和专辑名,还是单纯想移除这些信息只保留曲目号和歌曲名——这里有个可靠的PowerShell解决方案,利用正则表达式精准匹配目标内容:
步骤1:定位到音乐文件夹
首先打开PowerShell,切换到你的音乐文件所在的文件夹(替换下面的路径为你实际的文件夹地址):
Set-Location "C:\Path\To\Your\Music\Files"
步骤2:执行批量重命名(先预览,安全第一)
下面的命令会先预览重命名效果,不会实际修改文件。确认所有预览结果符合预期后,去掉命令末尾的-WhatIf参数即可执行实际修改:
Get-ChildItem -Filter "*.mp3" | Rename-Item -NewName { # 用正则匹配最后一段"曲目号_歌曲名"的部分 if ($_.Name -match '.*_(\d+_.+)\.mp3$') { # 提取匹配到的曲目号+歌曲名,加上mp3后缀 "$($matches[1]).mp3" } else { # 对不符合格式的文件,保留原文件名避免误改 $_.Name } } -WhatIf
为什么这个方案可行?
- 正则表达式逻辑:
.*_(\d+_.+)\.mp3$会跳过文件名开头所有内容(包括重复的乐队/专辑名),只捕获最后一个以数字开头(曲目号)、后面跟着歌曲名(支持含下划线)的部分。 - 容错性:如果某个文件名不符合
乐队名_专辑名_曲目号_歌曲名.mp3的格式(比如没有曲目号),命令会自动保留它的原名称,不会乱改。 - 安全预览:
-WhatIf参数是PowerShell重命名时的黄金搭档,先确认所有修改都符合你的预期再执行实际操作,避免误删或错改文件。
示例效果
- 原文件:
Band_Name_Album_Name_01_Song_Title.mp3→ 新文件名:01_Song_Title.mp3 - 原文件:
Band_Name_Album_Name_Band_Name_Album_Name_02_Another_Song.mp3→ 新文件名:02_Another_Song.mp3
内容的提问来源于stack exchange,提问作者Thomas Monical
相关产品推荐
相关产品推荐

