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

Using PowerShell to rename a portion of a file and add auto-increment, what content in my script am I missing to cause an increment to my numbers?

原始文件名:

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++)}

我缺少什么导致增量发生?

这是一个变量范围问题:查看 Get-Help About_Scope。使用脚本范围,你应该没问题。

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