Arrays 为什么我的PowerShell多维数组被解释为一维数组?
我有以下代码:Arrays 为什么我的PowerShell多维数组被解释为一维数组?,arrays,powershell,multidimensional-array,Arrays,Powershell,Multidimensional Array,我有以下代码: function HideTemplates($File, $Templates) { foreach ($Template in $Templates) { Write-Host $Template[0] $Template[1] $Template[2] } } HideTemplates "test.xml" @(("one", "two", "three")) HideTemplates "test.xml" @(("four", "five", "
function HideTemplates($File, $Templates)
{
foreach ($Template in $Templates)
{
Write-Host $Template[0] $Template[1] $Template[2]
}
}
HideTemplates "test.xml" @(("one", "two", "three"))
HideTemplates "test.xml" @(("four", "five", "six"), ("seven", "eight", "nine"))
它打印:
o n e
t w o
t h r
four five six
seven eight nine
我想把它打印出来:
one two three
four five six
seven eight nine
我的代码是否有问题?有没有办法强制PowerShell以不同的方式处理具有单个项的多维数组?这样调用函数:
HideTemplates "test.xml" (,("one", "two", "three"))
HideTemplates "test.xml" (,("four", "five", "six"),("seven", "eight", "nine"))
如果内容已经是数组,数组子表达式ie@()
将不执行任何操作。改为使用逗号运算符,它将始终创建一个数组,在其后的任何元素周围都有一个元素。请注意,您必须添加一组额外的参数,否则:
HideTemplates "test.xml",("one", "two", "three")
将被视为一个array类型的参数,而不是两个参数。谢谢,这非常有效。我曾试着在结尾加上一个逗号((“一”、“二”),),但没用。