Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 将计数器作为后缀添加到子文件夹中的所有文件_Powershell_Powershell 2.0 - Fatal编程技术网

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

Powershell 将计数器作为后缀添加到子文件夹中的所有文件,powershell,powershell-2.0,Powershell,Powershell 2.0,我在重命名50000个文件时遇到了这个问题,这些文件分为多个文件夹。问题是,由于某些文件被删除,原始的顺序命名都被聚集起来,因此计数从*0005跳到*0007 我想重命名所有子文件夹中的所有文件,以便根据文件的当前顺序,后缀为4位数字。最重要的是,我希望计数器重新启动每个文件夹 我有一个工作脚本,它根据输入一个通用名、文件夹名和最后一个当前文件名来重命名文件 Get-ChildItem C:\test -Filter *.tif -Recurse | Rename-Item -NewName {

我在重命名50000个文件时遇到了这个问题,这些文件分为多个文件夹。问题是,由于某些文件被删除,原始的顺序命名都被聚集起来,因此计数从*0005跳到*0007

我想重命名所有子文件夹中的所有文件,以便根据文件的当前顺序,后缀为4位数字。最重要的是,我希望计数器重新启动每个文件夹

我有一个工作脚本,它根据输入一个通用名、文件夹名和最后一个当前文件名来重命名文件

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

我所需要做的就是在末尾添加另一个计数器

如果要在每个文件夹中重新启动计数器,则需要将文件夹递归与枚举/重命名每个文件夹中的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++
    }
}

听起来像个计划。祝你好运!问题是什么?