Jim*_*Jim 8 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", "six"), ("seven", "eight", "nine"))
Run Code Online (Sandbox Code Playgroud)
它打印:
o n e
t w o
t h r
four five six
seven eight nine
Run Code Online (Sandbox Code Playgroud)
我想要它打印:
one two three
four five six
seven eight nine
Run Code Online (Sandbox Code Playgroud)
我在代码中做错了吗?有没有办法强制PowerShell以不同的方式使用单个项目来处理多维数组?
像这样调用你的函数:
HideTemplates "test.xml" (,("one", "two", "three"))
HideTemplates "test.xml" (,("four", "five", "six"),("seven", "eight", "nine"))
Run Code Online (Sandbox Code Playgroud)
数组子表达式,即@()如果内容已经是数组则不执行任何操作.使用逗号运算符,它将始终创建一个数组,其中包含一个元素.请注意,您必须添加一组额外的parens否则:
HideTemplates "test.xml",("one", "two", "three")
Run Code Online (Sandbox Code Playgroud)
将被视为类型数组的单个参数而不是两个参数.