我有重命名50,000个文件的问题,分成多个文件夹。问题是原始顺序命名全部被集中,因为某些文件被删除了,所以计数从让我们说* 0005跳到* 0007。
我想重命名所有子文件夹中的所有文件,因此后缀将是一个4位数字,基于文件的当前顺序。最重要的是,我希望计数器在每个文件夹中重新启动。
我有一个工作脚本,根据通用名称重新命名文件,然后是文件夹名称,最后是当前文件名。
Get-ChildItem C:\test -Filter *.tif -Recurse | Rename-Item -NewName { 'IL-TRUM'+'_'+$_.Directory.Name+'_'+$_.name}
我需要做的就是在最后添加另一个计数器!
答案 0 :(得分:0)
如果要在每个文件夹中重新启动计数器,则需要将文件夹递归与枚举/重命名每个文件夹中的TIFF文件分开。尝试这样的事情:
Get-ChildItem -LiteralPath 'C:\test' -Recurse | Where-Object {
$_.PSIsContainer
} | ForEach-Object {
$cnt = 0
Get-ChildItem -LiteralPath $_.FullName -Filter '*.tif' | ForEach-Object {
Rename-Item -LiteralPath $_.FullName -NewName ("IL-TRUM_{0}_{1}_{2:d4}{3}" -f $_.Directory.Name, $_.Name, $cnt, $_.Extension)
$cnt++
}
}