2016-11-10 6 views
0

の性質の比較:私は<strong>値2つのPowerShellオブジェクトの</strong>を比較することができます知っている2 PsCustomObjects

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 <= 

しかし、私はexistanceに性質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 

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

+3

を '@(コンペアオブジェクト@($ A.PSObject.Propertiesを)!。 PSObject.Properties) - プロパティ名).Length' – PetSerAl

+0

@PetSerAl、それは働いた。 – craig

答えて

1

私は、これを行うにはいくつかの方法で最も簡単なものの、実際にテストされていないと考えることができます($のB @

$A.Keys | ForEach-Object { $C = $B["$_"]; if ($C -eq "") {return $false;} } 
関連する問題