如何在PowerShell中就地展开数组?
PowerShell 数组就地展开实现方法
要实现将数组A的元素直接展开到数组B中(而非将A作为单个元素加入),可通过以下两种方法实现:
方法一:使用数组展开运算符(PowerShell 3.0+)
在目标数组中引用需要展开的数组时,在数组变量前添加@符号,即可就地展开其所有元素:
$SNs = "0x66", "0x88" $splat = @( 'abc', '--serial-number', @$SNs, # 用@展开$SNs的元素 '--sign' ) Write-Host "Splat Count = " $splat.Count # 输出为5,符合预期
执行后,$splat的元素依次为:'abc', '--serial-number', '0x66', '0x88', '--sign',总数量为5。
方法二:数组拼接(兼容所有PowerShell版本)
将多个数组通过+运算符直接拼接,自动展开嵌套数组的元素:
$SNs = "0x66", "0x88" $splat = @('abc', '--serial-number') + $SNs + @('--sign') Write-Host "Splat Count = " $splat.Count # 输出为5
这种方式通过拼接三个独立数组,将$SNs的元素自然融入最终的splat数组中。
内容的提问来源于stack exchange,提问作者RaymondY
相关产品推荐
相关产品推荐

