我在将现有的vbs脚本转换为PowerShell脚本时遇到了一些问题。 我已经用一些虚拟代码来说明这个问题,而不是我的原始代码。 在示例1中,我只有一个元素集合的数组,在将数组变量返回给函数后,它只会显示P。
然而,在示例2中,当我有两组元素时,在将数组变量返回给函数后,它将正确地显示元素。
如果你在示例1和2中的函数内打印数组,获取结果时没有任何问题。
我已经搜索过谷歌,但没有找到任何解决方案。非常感谢您的帮助。 示例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
,意思是在返回$array1
时将其转换为一个仅包含该数组的元素的数组。$array2 = testArray
翻译为$array2 = @(testArray)
,意思是将testArray
转换为一个数组,如果testArray
已经是一个数组,则不做任何更改。 - user4003407,
),您将其包装在另一个数组中,该数组在返回时被展开,同时保留嵌套的数组不变。 - Ansgar Wiechers