2015-09-23 26 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++)}