1

2 つの PowerShell オブジェクトのを比較できることはわかっています。

PS> $A = [PsCustomObject]@{"A"=1; "B"=$True; "C"=$False}
PS> $B = [PsCustomObject]@{"A"=1; "B"=$False; "C"=$False}
PS> Compare-Object $A $B -Property A, B, C

A  B     C SideIndicator
-  -     - -------------
1  False False =>
1  True  False <=

ただし、 2 つの PowerShell オブジェクトのプロパティの存在を比較する必要があります。

これらのオブジェクトは同じと見なされます。

PS> $A = [PsCustomObject]@{"A"=1; "B"=$True; "C"=$False}
PS> $B = [PsCustomObject]@{"A"=1; "B"=$False; "C"=$True}
PS> Compare-Foo $A $B
True

これらのオブジェクトは同じではないと見なされます:

PS> $A = [PsCustomObject]@{"A"=1; "C"=$False}
PS> $B = [PsCustomObject]@{"A"=1; "B"=$False; "C"=$False}
PS> Compare-Foo $A $B
False

これを行う良い方法はありますか?

4

1 に答える 1

1

これを行うにはいくつかの方法が考えられます。最も簡単ですが、実際にはテストされていません。

$A.Keys | ForEach-Object { $C = $B["$_"]; if ($C -eq "") {return $false;} }
于 2016-11-10T23:06:21.063 に答える