2015-06-14 99 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'相同 –