2016-04-15 157 views
1

我正在尝试使用PowerShell填充for循环中的迭代器,但收到错误消息。在for循环中填充迭代器

普通填充正常工作:

$mytext = "Test" 
Write-Host $mytext.PadLeft(5, "0") 
# Output: 0Test 

但是,使用迭代器不工作:

for ($i=1; $i -lt 20; $i++) { 
    Write-Host $i.PadLeft(2, "0") 
} 

方法调用失败,因为[System.Int32]不包含名为“方法PadLeft”。

不是我就算迭代器复制到一个变量填充前:

for ($i=1; $i -lt 20; $i++) { 
    $Iterator = $i 
    Write-Host $Iterator.PadLeft(2, "0") 
} 

方法调用失败,因为[System.Int32]不包含名为“PadLeft”的方法。

根本就不可能在for循环中使用PadLeft()

回答

2

这是因为$iinteger,并且由于错误消息告诉您,它不包含PadLeft方法。无论如何,你可以施放integer字符串:

for ($i=1; $i -lt 20; $i++) { 
    $Iterator = [string]$i 
    Write-Host $Iterator.PadLeft(2, "0") 
} 
+0

哇哦,我太傻了,谢谢......不知怎的,我读它在错误消息“System32下”和误解了整件事情。 –

+0

'$ i.ToString('00')' – PetSerAl