首页 > 解决方案 > 如何一次重命名多个文件并替换特定字符而不影响其他字符

问题描述

我想替换这 98 个文件的前两个数字,看起来像这样

10 10HZ.mp3
11 11HZ.mp3
12 12HZ.mp3

用“Bass Mekanik -”让它看起来像这样

Bass Mekanik - 10HZ.mp3
Bass Mekanik - 11HZ.mp3
Bass Mekanik - 12HZ.mp3

我在 CMD 上尝试了很多不同的组合,就像这样

*重命名“?? ??.mp3”“Bass Mekanik - ??.mp3”

但没有任何效果。我想保留每个文件的最后 4 个字符。

同样在不久的将来,我将需要在每个文件(不是在这些文件上,其他具有很多其他字符的文件上)前面添加“Bass Mekanik -”,而无需更改任何其他内容。到目前为止,我学会了如何使用删除前 2 个字符

*重命名 "?? ??.mp3" "// ??.mp3"

然后我尝试添加“Bass Mekanik”,但它给出了一个错误“存在重复的文件名,或者找不到文件。” 我希望这是可能的......

标签: powershellfile-rename

解决方案


这应该可以满足您的需要,如果您对结果感到满意,请删除 WhatIf

保留文件名的最后 4 个(8 个带有“.mp3”)字符和前缀“Bass Mekanik”

Get-ChildItem | % { $_.FullName -match ".{8}(?<=\.mp3$)" | Out-Null ; Rename-Item -LiteralPath $_.FullName -NewName ( "Bass Mekanik " + $Matches.Values ) -WhatIf }

在当前文件名前加上“Bass Mekanik”

Get-ChildItem | % { Rename-Item -LiteralPath $_.FullName -NewName ("Bass Mekanik" + $_.Name ) -WhatIf }

推荐阅读