将计数器作为后缀添加到子文件夹中的所有文件

时间:2014-11-15 10:39:37

标签: powershell powershell-v2.0

我有重命名50,000个文件的问题,分成多个文件夹。问题是原始顺序命名全部被集中,因为某些文件被删除了,所以计数从让我们说* 0005跳到* 0007。

我想重命名所有子文件夹中的所有文件,因此后缀将是一个4位数字,基于文件的当前顺序。最重要的是,我希望计数器在每个文件夹中重新启动。

我有一个工作脚本,根据通用名称重新命名文件,然后是文件夹名称,最后是当前文件名。

Get-ChildItem C:\test -Filter *.tif -Recurse | Rename-Item -NewName { 'IL-TRUM'+'_'+$_.Directory.Name+'_'+$_.name}

我需要做的就是在最后添加另一个计数器!

1 个答案:

答案 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++
    }
}