0
我想用PowerShell做一些基於正則表達式的批量重命名。如何在批量重命名中使用正則表達式匹配組?
這成功地讓我僅我所需要的文件:
Get-ChildItem . | Where-Object { $_.Name -cmatch "(\b|_)(L|H|M|X{1,3})(_|\b)" }
(所有那些包含大寫字母L,M,X,...)
接下來,我要重命名,即mycustom_M.png
至processed_M.png
,another_L.png
至processed_L.png
等等。
基本上,我會使用正則表達式.*?(?:\b|_)(L|H|M|X{1,3})(?:_|\b).*
來選擇名稱,如果我在Notepad ++中,我將使用processed_\1.png
來取代它們,但是我無法使它在PowerShell中工作(我肯定缺少這裏的正確語法) :
[...] | Rename-Item -NewName { $_.Name -replace ".*?(?:\b|_)(L|H|M|X{1,3})(?:_|\b).*","banner_$Matches.groups[1].value" }
啊,沒想到逃逸!像魅力一樣工作。謝謝。 – watery