![](/img/trans.png)
[英]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.