Foreach-Object项到一个数组,而不是一个子数组

时间:2019-05-18 15:22:51

标签: c# .net powershell

所以,我正在开发这个脚本,已经从pscustom对象,哈希表,splatted数组和简单的csv数组进行了更改,我一直在使用标准循环,直到混合为止使用foreach-object进行标准循环,说实话,有一种简单的方法可以解决此问题,但是我真的希望它不是我使用的解决方案,大声笑。

所以,发生的是,如果我将%循环封装在括号中,则该变量将看起来像输出为正确格式一样...但是为了选择输出中的第一个或第二个字符串,我必须使用2套括号,而不是一组。例如$ vm [0] [0],$ vm [0] [1]

不能完全确定此方法是否可以使用,但是我一直在尝试一些疯狂的东西。

$vm = ( $d[1] , $l[1] | % { $_ + '\VM\VMWare' } ) , '\setup.exe' , '\setup64.exe' , '/s /v "/qn reboot=r"'

1 个答案:

答案 0 :(得分:0)

为了不被锯齿状排列,请将整个括在@()中。并使用分号作为分隔符。

$vm = @($d[1],$l[1] | % { $_ + '\VM\VMWare' }; '\setup.exe', '\setup64.exe', '/s /v "/qn reboot=r"')

$vm = @(
    $d[1],$l[1] | % { $_ + '\VM\VMWare' }
    '\setup.exe', '\setup64.exe', '/s /v "/qn reboot=r"'
)

另一种方法是将一个数组添加到另一个数组。

$vm = @($d[1],$l[1] | % { $_ + '\VM\VMWare' }) + '\setup.exe', '\setup64.exe', '/s /v "/qn reboot=r"'