【发布时间】:2012-10-17 04:52:18
【问题描述】:
这个 powershell 代码怎么会因为“无法索引到空数组。”而失败?这对我来说毫无意义。确定 $cloudPfx 应该是一个非空数组吗?
$cloudPfx = @( "Foo.pfx", "Bar.pfx", $SSLCertFileName )
$cloudPfx | foreach {
## call some function...
Save-Pfx "Foo\$_" (Join-Path $SomePath "Bar$_")
}
foreach : Cannot index into a null array.
At [that line]
+ $cloudPfx | foreach {
+ ~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [ForEach-Object], RuntimeException
+ FullyQualifiedErrorId : NullArray,Microsoft.PowerShell.Commands.ForEachObjectCommand
【问题讨论】:
-
不应该,即使
$SSLCertFileName为空。鉴于此,此代码必须比发布的内容更多。例如,$SSLCertFileName中的内容是什么? -
而且,代码复制/粘贴是偶然的吗?是否有任何错误的特殊字符显示为空格?
-
尝试使用
foreach语句而不是 cmdlet。 IE。将您的代码更改为foreach($_ in $cloudPfx) {..}。它不会解决您的问题,但希望您会收到更好的错误消息。 -
也用这一行代替原来的不正确:
Save-Pfx "Foo\$_" (Join-Path $SomePath "Bar$_")
标签: arrays powershell foreach