我在目录中有多个.mp3文件,并希望从其文件名中删除艺术家的名字。所有文件名都包含字符串
“胶粘袋熊-”
后跟歌曲的标题。我想删除(而不是替换)当前文件夹中每个文件名中该特定字符串的所有出现。
更不用说,我已经在该网站上搜索了答案,但没有找到一个优雅而令人满意的解决方案。
这是我第一次接触PowerShell。
您所知道的是真的关闭。
Dir | ren -NewName { $_.Name -replace "Adhesive Wombat - ", "" }
您添加了一项规定,“胶粘袋熊”可能包含空格,也可能不包含空格。 -replace
使用正则表达式,因此可以使用make that space optional来利用它和?
。我还将向您显示完整的cmdlet名称(假定为别名),以便您了解幕后情况。很难看到,但我尝试以粗体突出显示?
以使其“弹出”。
Get-ChildItem | Rename-Item -NewName {$_.Name -replace "Adhesive ?Wombat - ", "" }
因此将两者都匹配
"other text Adhesive Wombat - other text "
"other text AdhesiveWombat - other text "
此外,根据有多少空白,您可以使用\s+
,那里的空白会匹配所有连续的空白。
从以上答案中,可以简单地复制并粘贴的快速工作示例,该示例适用于Win 10 Powershell:
cd C:\.... Get-ChildItem *.* | Rename-Item -NewName {$_.Name -replace "StringtoReplace", "newString"}