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'

上記の例では、最初のオブジェクトに 2 しか含まれていない場合、2 番目のオブジェクトに 3 が含まれていてもpropertiesOut-GridViewCmdLet (およびその他) には 2 しか表示されないことがわかります。ただし、配列の最初のオブジェクトが 3 の場合、それらはすべて正しく表示されます。propertiespropertiesproperties

これを回避する方法はありますか?オブジェクトにいくつ存在するか、また、最も多くのオブジェクトが最初propertiesのオブジェクトになるかどうかを事前に予測することはできないためです。propertiesarray

4

1 に答える 1