管道整数数组时,$ _变量为空?

时间:2011-10-07 07:30:50

标签: powershell pipe

以此为例:

$var = "one","two","three"
0..2 | select-object $var[$_]

Index operation failed; the array index evaluated to null.
At line:1 char:27
+ 0..2 | select-object $var[ <<<< $_]
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : NullArrayIndex

为什么$ _是null?

3 个答案:

答案 0 :(得分:4)

我无法理解您使用select-object

的原因

试试这个:

$var = "one","two","three"
0..2 | % { $var[$_]}

答案 1 :(得分:2)

您也可以以不同的方式使用select-object:

$var | select -Index (0..2)

顺便说一句,如果你想要做的就是在数组中提取元素,你可以进行数组切片:

$var[0..2]

答案 2 :(得分:1)

如果要使用select-object,则需要创建一个哈希表,即计算属性,并为其指定名称和表达式键。结果将是具有一个属性var的对象,在以下示例中为

0..2 | select @{name='var';expression={$var[$_]}}

var
---
one
two
three