【发布时间】:2017-03-06 08:36:57
【问题描述】:
我在将现有的 vbs 脚本转换为 PowerShell 脚本时遇到了一些问题。我在这里用一些虚拟代码而不是我的原始代码来说明。在示例 1 中,我的数组中只有一组元素,在将数组变量返回给函数时,它只会显示 P。
但是在示例 2 中,我在数组中有 2 组元素,将数组变量返回给函数后,它将正确显示元素。
如果在示例 1 和示例 2 中的函数内部打印数组。获取结果没有任何问题。
我已经用谷歌搜索并找不到任何解决方案。非常感谢您的热心帮助。
示例 1:
function testArray {
$array1 = @()
$array1 += ,@("Apple","Banana")
return $array1
}
$array2 = testArray
Write-Host $array2[0][1]
结果是“P”。
示例 2:
function testArray {
$array1 = @()
$array1 += ,@("Apple","Banana")
$array1 += ,@("Orange","Pineapple")
return $array1
}
$array2 = testArray
Write-Host $array2[0][0]
结果是“苹果”。
【问题讨论】:
-
return $array1->return ,$array1或$array2 = testArray->$array2 = @(testArray) -
@petseral 有效,有什么原因,还是只是 powershell 的语法?
-
PowerShell 展开从函数返回的数组。通过在返回的数组前面加上数组构造运算符 (
,),您可以将其包装在另一个数组中,该数组在返回时展开,保持嵌套数组完整。 -
这是一个重复的问题吗?我敢肯定,这必须在这里被问过。无论哪种方式,这是我自己第一次看到这个问题,并且很感激我遇到了它。向大家致敬。
标签: arrays powershell multidimensional-array