在for循环中填充迭代器

时间:2016-04-15 09:14:04

标签: powershell

我正在尝试使用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吗?

1 个答案:

答案 0 :(得分:2)

因为$iinteger而且错误消息告诉您,它不包含PadLeft方法。无论如何,您可以将integer强制转换为字符串:

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