当我们尝试通过管道将数据导出到其他函数时,我们在 PowerShell 中观察到一些奇怪的行为。
示例代码:
$Array = @()
$Obj1 = [PSCustomObject]@{
Member1 = 'First'
Member2 = 'Second'
}
$Obj2 = [PSCustomObject]@{
Member1 = 'First'
Member2 = 'Second'
Member3 = 'Third'
}
$Array = $Obj1, $Obj2
$Array | Out-GridView -Title 'Not showing Member3'
$Array = $Obj2, $Obj1
$Array | Out-GridView -Title 'All members correctly displayed'
在上面的示例中,您可以看到当第一个对象仅包含 2properties
时,Out-GridView
CmdLet(和其他对象)仅显示 2 properties
,即使第二个对象具有 3 properties
。但是,当数组中的第一个对象有 3properties
时,它会正确显示它们。
有没有解决的办法?因为不可能预先预测properties
一个对象上会有多少个,以及拥有最多的对象是否properties
会是array
.