在 Powershell 中,如何从对象返回的数组中获取值?

问题描述 投票:0回答:1

在 powershell 中,如果一个对象为一个元素返回多个值,那么我不知道如何分隔这些值。

所以,例如:

'1' | %{@("ValueC_$_.1","ValueC_$_.2","ValueC_$_.3")[0]}

如我所料返回 ValueC_1.1 。但是..

$Object = [System.Collections.ArrayList]@()
(1..4) | %{
    $null = $object.Add([pscustomobject] @{
        "PropertyA"="ValueA_$_"
        "PropertyB"="ValueB_$_"
        "PropertyC"=@("ValueC_$_.1","ValueC_$_.2","ValueC_$_.3")
    })
}

$Object | Select-Object PropertyC -First 1 | %{$_[0]}

返回这个:

{值C_1.1,值C_1.2,值C_1.3}

那么,如何分离每个子值并仅指定每个对象的第一个值?

powershell object
1个回答
5
投票

我认为这就是您正在寻找的:

PS> $Object | % { $_.PropertyC[0] }
ValueC_1.1
ValueC_2.1
ValueC_3.1
ValueC_4.1

也就是说,对于

$Object
中的每个对象,您想要返回其数组值
.PropertyC
的属性的第一个元素。

注:

  • %
    ForEach-Object
    的内置别名,它接受 脚本块 (
    { ... }
    ) 来为每个管道输入对象执行。

  • 在该脚本块内,自动

    $_
    变量指的是手头的管道输入对象。

© www.soinside.com 2019 - 2024. All rights reserved.