2017-03-01 92 views
0

重命名的PDF文件使用命令太多文件重命名

get-childitem | % { rename-item $_ "2017-$_"} 

正確地重命名文件,33但應用相同的命令超過33頁的文件名產生看起來像2017-2017-2017 ...-原。名稱。

我該如何超越那個我還沒有找到任何解釋的限制?

+0

你確定你沒有意外重新命名已重命名的文件你自己? – Filburt

回答

1

看起來你的代碼正在追逐它的尾巴(即它重命名已經重命名的東西)。捕獲文件的列表到一個變量,然後通過這個循環,重命名文件的捕獲列表:

$filesToRename = Get-ChildItem -Filter '*.pdf' 
$filesToRename | ForEach-Object { 
    Rename-Item -Path $_.FullName -NewName "2017-$($_.FullName)" 
} 

如果要排除已重命名的文件:

$prefix = '2017-' 
$filesToRename = Get-ChildItem -Filter '*.pdf' | Where-Object { !$_.Name.StartsWith($prefix) } 
$filesToRename | ForEach-Object { 
    Rename-Item -Path $_.FullName -NewName "$prefix$($_.FullName)" 
} 
2

由於重命名,項目接受管道輸入沒有必要爲一個foreach,
排除的文件與2017-開始:

Get-ChildItem *.pdf -exclude 2017-*.pdf | 
    Rename-Item -Newname { $_.Name -replace '^','2017-' } -whatif 

以排除NY年/ 4位數號碼前綴:

Get-ChildItem *.pdf | 
    Where-Object Name -notmatch '^\d{4}-' | 
    Rename-Item -Newname { $_.Name -replace '^','2017-' } -whatif 

如果輸出看起來不錯,除去-whatif