PowerShell PSCustomObject按位置选择属性名称

时间:2014-08-25 09:03:15

标签: object powershell properties

假设我有PSCustomObject这样名为$Stuff

$Stuff = ("Green", "Aubergine"),("Yellow", "Banana") | 
% {[PSCustomObject]@{'Colors'=$_[0];'Items'=$_[1]}}

$Stuff | Format-Table
Colors:  Items:
Green    Courgette
Yellow   Banana

要检索所有颜色,通常会使用$Stuff.Colors$Stuff | Select-Object -Property Colors

因为标签Colors经常在我的脚本中发生变化,所以只要根据它的位置选择属性名称就更好了。因为我知道它永远是第一个属性,像$Stuff.[Property0]这样的东西会很好。这可能吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

一种方法是:

$stuff | select -Property  ($stuff | gm | ? { $_.membertype -eq 'noteproperty' })[0].name

$stuff | select -Property  ($stuff[0].psobject.properties | select -expa name)[0]

答案 1 :(得分:0)

您可以这样选择PSCustomObject的第一个属性

$CustomObject1 = New-Object pscustomobject -Property @{a=1; b=2; c=3; d=4}
$CustomObject1.psobject.properties | select-object -Property Name -first 1