为什么此int两次递增到01?

时间:2019-05-20 10:59:29

标签: powershell

我需要查找以01 02 03等结尾的变量,直到该变量不存在为止,然后继续执行脚本。在此循环中,重复执行01,然后继续执行02 03 04 05等。为什么重复01?

我的变量以两位数结尾,因此我在寻找变量之前将整数转换为字符串。我设法通过进入循环之前再次增加$ i来解决我遇到的问题,但是我有点困惑。

重复两次01的初始脚本

$i=1
$CopyFiles_Content_No = ($i).ToString('00')
do {   
 $CopyFiles_Contents += (Get-Item env:$($CopyFiles_Step)_Contents$($CopyFiles_Content_No)).Value
 $CopyFiles_Content_No = ($i++).ToString('00')
} while (Test-Path env:$($CopyFiles_Step)_Contents$($CopyFiles_Content_No) -ErrorAction Ignore)

要轻松复制此文件,只需在Powershell中键入以下内容

$i=1     #Set Int
$CopyFiles_Content_No = ($i).ToString('00')     #Convert to double digit string
$CopyFiles_Content_No     #See output which is 01
$CopyFiles_Content_No = ($i++).ToString('00')     #Increment $i and assign to variable
$CopyFiles_Content_No     #See output which is still 01
$CopyFiles_Content_No = ($i++).ToString('00')     #Increment $i and assign to variable
$CopyFiles_Content_No     #See output which is 02
$CopyFiles_Content_No = ($i++).ToString('00')    #Increment $i and assign to variable
$CopyFiles_Content_No     #See output which is 03

解决方法是在进入循环之前增加$ 1

$i=1
$CopyFiles_Content_No = ($i++).ToString('00')
do {   
 $CopyFiles_Contents += (Get-Item env:$($CopyFiles_Step)_Contents$($CopyFiles_Content_No)).Value
 $CopyFiles_Content_No = ($i++).ToString('00')
} while (Test-Path env:$($CopyFiles_Step)_Contents$($CopyFiles_Content_No) -ErrorAction Ignore)

0 个答案:

没有答案