重命名的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