Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 为什么我的PowerShell多维数组被解释为一维数组?_Arrays_Powershell_Multidimensional Array - Fatal编程技术网

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类型的参数,而不是两个参数。

谢谢,这非常有效。我曾试着在结尾加上一个逗号((“一”、“二”),),但没用。