使用PowerShell重命名文件的一部分并添加自动增量,我的脚本中缺少哪些内容导致我的数字增加?
原始文件名: 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 以下是我正在使用的代码:使用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
$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++)}