Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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_Increment_Auto Increment_Batch Rename - Fatal编程技术网

使用PowerShell重命名文件的一部分并添加自动增量,我的脚本中缺少哪些内容导致我的数字增加?

使用PowerShell重命名文件的一部分并添加自动增量,我的脚本中缺少哪些内容导致我的数字增加?,powershell,increment,auto-increment,batch-rename,Powershell,Increment,Auto Increment,Batch Rename,原始文件名: XYZ_150014_0101_ABC_01_20150404_FD_v03 XYZ_150014_0101_ABC_01_20150411_FD_v03 XYZ_150014_0101_ABC_01_20150418_FD_v02 XYZ_150014_0101_ABC_01_20150425_FD_v02 我需要将0101更新为01+[2位增量值],因此它应该如下所示: XYZ_150014_0101_ABC_01_20150404_FD_v03 XYZ_150014_0102

原始文件名:

XYZ_150014_0101_ABC_01_20150404_FD_v03 XYZ_150014_0101_ABC_01_20150411_FD_v03 XYZ_150014_0101_ABC_01_20150418_FD_v02 XYZ_150014_0101_ABC_01_20150425_FD_v02

我需要将0101更新为01+[2位增量值],因此它应该如下所示:

XYZ_150014_0101_ABC_01_20150404_FD_v03 XYZ_150014_0102_ABC_01_20150411_FD_v03 XYZ_150014_0103_ABC_01_20150418_FD_v02 XYZ_150014_0104_ABC_01_20150425_FD_v02

以下是我正在使用的代码:

$i = 1 
Dir|Rename-Item –NewName {$_.name –replace "0101",("01" + "{0:D2}" -f $i);$i=++$i}
不幸的是,这只会将0101更新为0102,留下递增的值

我也尝试了下面的脚本,得到了与上面脚本相同的响应

$i = 1
Dir|Rename-Item –NewName {$_.name –replace "0101",("01{0:D2}" -f $i++)}

我遗漏了什么导致增量发生

这是一个可变范围的问题:请查看获取有关\u范围的帮助。使用脚本作用域,您应该不会有问题

$i = 1
Dir xyz*|Rename-Item –NewName {$_.name –replace "0101",("01{0:D2}" -f $script:i++)}