为什么选择-index数组不起作用,powershell

时间:2011-01-21 13:24:52

标签: arrays select powershell

我需要添加不属于线性序列的数字来检索指定的索引文件夹,我尝试这样做:

$a =ls | ?{$_.psiscontainer} | sort creationtime

然后我尝试只选择一些文件夹(失败):

$a | select -Index (100, 101, (103..109))

使用这个简化的数组我没有问题:

$a | select -Index (103..109)

我该如何添加这些数字?

我尝试这个,强制转换为数组,但转换过程失败,我不知道为什么,如果我得到数组的内部成员的类型,他们已经是Int32,所以我不理解错误。

$a | select -Index @(100, 101, (103..109))

2 个答案:

答案 0 :(得分:5)

参数-Index的类型为int[]。这意味着你作为一个参数传递的内容,它必须是一个数组数组。

Imho最简单的方法就是添加这样的数组:

0..100 | select -Index (2,3,5 + 20..30 + 50,60)

请注意,您不必执行((2,3,5) + (20..30) + (50,60)),因为逗号运算符的优先级高于plus和 interval运算符

答案 1 :(得分:2)

对于此示例,您可以使用数组切片获得相同的结果:

$a[100,101 + 103..109]