7

当我们尝试通过管道将数据导出到其他函数时,我们在 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-GridViewCmdLet(和其他对象)仅显示 2 properties,即使第二个对象具有 3 properties。但是,当数组中的第一个对象有 3properties时,它会正确显示它们。

有没有解决的办法?因为不可能预先预测properties一个对象上会有多少个,以及拥有最多的对象是否properties会是array.

4

1 回答 1

7
于 2017-06-08T07:17:20.997 回答