[英]How to remove all characters from multiple filenames after specified characters - Powershell
[英]PowerShell - Remove certain string from multiple filenames
我的目录中有多个.mp3文件,并希望从文件名中删除艺术家的名字。 所有文件名均包含字符串
“胶袋熊-”
然后是歌曲的标题。 我想删除(而不是替换)当前文件夹中每个文件名中该特定字符串的所有出现。
更不用说,我已经在该网站上搜索了答案,但没有找到一个优雅而令人满意的解决方案。
这是我第一次接触PowerShell。
如您所知,您拥有的确实很近。
Dir | ren -NewName { $_.Name -replace "Adhesive Wombat - ", "" }
您添加了“胶粘袋熊”可能包含空格或不包含空格的规定。 -replace
使用正则表达式,因此可以利用它并使用?
使该空间可选 ?
。 我还将向您显示完整的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"}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.