我正在尝试使用PowerShell在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”的方法。
根本不可能在PadLeft()
循环中使用for
吗?
答案 0 :(得分:2)
因为$i
是integer
而且错误消息告诉您,它不包含PadLeft
方法。无论如何,您可以将integer
强制转换为字符串:
for ($i=1; $i -lt 20; $i++) {
$Iterator = [string]$i
Write-Host $Iterator.PadLeft(2, "0")
}