2015-09-23 23 views
0

原始文件名:使用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

下面是我使用的代码:

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

我错过了什么导致增量发生?

回答

0

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

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