在Powershell中提取一系列数组

时间:2012-09-18 13:56:28

标签: arrays loops powershell

假设变量$ a中有一个像这样创建的数组,

$a  = ,@(1,2,3)
$a += ,@(4,5,6)
$a += ,@(7,8,9)
$a += ,@(10,11,12)

我想将数组的一部分,比如$ a [1]和$ a [2]提取到另一个变量中,比如说,$ b这样,

$b[0] = @(4,5,6)
$b[1] = @(7,8,9)

我可以使用一个简单的for循环来完成任务,但我在想是否有更“优雅”的方式来做这个...可能是一个单行程?

提前致谢。

2 个答案:

答案 0 :(得分:17)

您可以使用Range运算符对数组进行切片:

$b = $a[1..2]

答案 1 :(得分:3)

值得注意的是Range运算符支持动态值 - 当您想要动态计算范围时非常有用,例如:

$a = @(0,1,2,3,7)
$b = @(4,5,6)
$twotoseven = $a[($a.Length-($a.Length-2))..($a.Length-2)] + $b + $a[-1]

输出:

2 3 4 5 6 7