【问题标题】:When piping array of integers the $_ variable is null?当管道整数数组时 $_ 变量为空?
【发布时间】:2011-10-07 07:30:50
【问题描述】:

以此为例:

$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

为什么 $_ 为空?

【问题讨论】:

    标签: powershell pipe


    【解决方案1】:

    我不明白你为什么要使用 select-object

    试试这个:

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

    【讨论】:

    • 啊,foreach。这就是工作。谢谢你。 :)
    【解决方案2】:

    您还可以通过不同的方式使用 select-object:

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

    顺便说一句,如果您只想提取数组中的元素,您可以进行数组切片:

    $var[0..2]
    

    【讨论】:

      【解决方案3】:

      如果你想使用选择对象,你需要创建一个哈希表,也就是计算属性,并给它一个名称和表达式键。在以下示例中,结果将是具有一个属性 var 的对象

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

      【讨论】:

      • 这不是在这种情况下使用 select 可以 的正确方式。看我的回答:)
      • 这是一个旁注,+1 用于使用 index 参数。
      • 这就是为什么罐子是斜体的:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-19
      • 1970-01-01
      • 1970-01-01
      • 2016-09-10
      • 2016-04-22
      • 1970-01-01
      相关资源
      最近更新 更多