在 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}
那么,如何分离每个子值并仅指定每个对象的第一个值?
我认为这就是您正在寻找的:
PS> $Object | % { $_.PropertyC[0] }
ValueC_1.1
ValueC_2.1
ValueC_3.1
ValueC_4.1
也就是说,对于
$Object
中的每个对象,您想要返回其数组值 .PropertyC
的属性的第一个元素。
注:
%
是 ForEach-Object
的内置别名,它接受 脚本块 ({ ... }
) 来为每个管道输入对象执行。
在该脚本块内,自动
$_
变量指的是手头的管道输入对象。