2015-06-14 71 views
0

我有許多文件格式如下:批量重命名文件與正則表達式

_ 名<數> <數> [TIF < 11號>] .jpg文件

eg john_sam01 [TIF 15355474840].jpg

而且我想刪除所有這些文件 的[TIF 15355474840]這包括「[TIF ......」和11個數字的不同組合,每次前一個前導空格。

因此前面的示例將成爲: josh_sam01.jpg


總之,使用的powershell(或cmd.exe的)與正則表達式我想轉此文件名:

josh_sam01 [TIF 15355474840] .jpg

分解爲:

josh_sam01.jpg

隨着變量是:'約翰 '山姆' 兩個數字,TIF後的數字。

回答

2

喜歡的東西,添加了新行的淨度:

dir ‹parameters to select the set of files› | 
    % { 
    $newName = $_.Name -replace '\s\[TIF \d+\]','' 
    rename-item -newname $newName -literalPath $_.Fullname 
    } 

幾乎可以肯定的加入 - whatif到重命名,直到我確信我有文件的選擇和重命名正確的。

+1

我可能會做'-ireplace',你永遠不知道:) – Kev

+1

'Rename-Item'可以直接從管道中讀取。只需在scriptblock中構建新名稱:'... | Rename-Item -NewName {$ _。Name -replace'\ s \ [TIF \ d + \]'}' –

+0

@Kev - 在PowerShell中'-replace'是不區分大小寫的,所以它和'-ireplace'相同 –