重命名的PDF文件使用命令太多文件重命名
get-childitem | % { rename-item $_ "2017-$_"}
正確地重命名文件,33但應用相同的命令超過33頁的文件名產生看起來像2017-2017-2017 ...-原。名稱。
我該如何超越那個我還沒有找到任何解釋的限制?
重命名的PDF文件使用命令太多文件重命名
get-childitem | % { rename-item $_ "2017-$_"}
正確地重命名文件,33但應用相同的命令超過33頁的文件名產生看起來像2017-2017-2017 ...-原。名稱。
我該如何超越那個我還沒有找到任何解釋的限制?
看起來你的代碼正在追逐它的尾巴(即它重命名已經重命名的東西)。捕獲文件的列表到一個變量,然後通過這個循環,重命名文件的捕獲列表:
$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)"
}
由於重命名,項目接受管道輸入沒有必要爲一個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
你確定你沒有意外重新命名已重命名的文件你自己? – Filburt