簡體   English   中英

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:

  1. 將目錄更改為您的目標目錄
  2. 用* .txt或每個文件獲取文件
  3. 插入字符串進行替換
 cd C:\\.... Get-ChildItem *.* | Rename-Item -NewName {$_.Name -replace "StringtoReplace", "newString"} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM