HOME > Object系コマンドレット > Compare-Object
Compare-Object
Compare-Objectは、オブジェクトを比較するコマンドです。
エイリアスdiff、compare
解説
2つのオブジェクトセットを比較し、それらの違いを特定するために使用します。
比較には、配列、ハッシュテーブル、カスタムオブジェクトなどを指定できます。
構文
- (構文)
- Compare-Object [-ReferenceObject] <psobject[]> [-DifferenceObject] <psobject[]> [<CommonParameters>]
パラメータ | 説明 |
---|---|
-ReferenceObject オブジェクト配列 | 比較の基準となるオブジェクトの配列を指定する (例)Compare-Object -ReferenceObject $array1 -DifferenceObject $array2 |
-DifferenceObject オブジェクト配列 | 比較対象のオブジェクトの配列を指定する (例) Compare-Object -ReferenceObject $array1 -DifferenceObject $array2 |
-SyncWindow 数 | 比較する際に、隣接するオブジェクトの数を指定する ※デフォルトは[Int32]::MaxValue (例)Compare-Object -ReferenceObject $array1 -DifferenceObject $array2 -SyncWindow 2 |
-Property プロパティ | 比較に使用するプロパティを指定する ※指定しない場合はオブジェクト全体が比較される (例)Compare-Object -ReferenceObject $array1 -DifferenceObject $array2 -Property "Name", "ID" |
-ExcludeDifferent | 両方のオブジェクトセットに存在しない異なるオブジェクトを除外する (例)Compare-Object -ReferenceObject $array1 -DifferenceObject $array2 -ExcludeDifferent |
-IncludeEqual | 同じ値を持つオブジェクトも結果に含める |
-PassThru | 通常は出力しない値を出力るようにする |
-Culture カルチャ | 比較に使用するカルチャを指定する ※デフォルト:現在のカルチャ (例)Compare-Object -ReferenceObject $array1 -DifferenceObject $array2 -Culture "en-US" |
-CaseSensitive | 大文字と小文字を区別して比較する (例)Compare-Object -ReferenceObject $array1 -DifferenceObject $array2 -CaseSensitive |
共通的なパラメータは「共通パラメータ」をご覧ください。
サンプル
配列を比較する
$array1 = 1, 2, 3, 4, 5
$array2 = 3, 4, 5, 6, 7
Compare-Object -ReferenceObject $array1 -DifferenceObject $array2
(実行結果)
InputObject SideIndicator
----------- -------------
6 =>
7 =>
1 <=
2 <=
オブジェクトを比較する
$obj1 = [PSCustomObject]@{ Name = "Orange"; Price = 50 }
$obj2 = [PSCustomObject]@{ Name = "Apple"; Price = 200 }
Compare-Object -ReferenceObject $obj1 -DifferenceObject $obj2 -Property Name
(実行結果)
Name SideIndicator
---- -------------
Apple =>
Orange <=
比較結果のオブジェクトをそのまま出力する
$array1 = 1, 2, 3, 4, 5
$array2 = 3, 4, 5, 6, 7
Compare-Object -ReferenceObject $array1 -DifferenceObject $array2 -PassThru
(実行結果)
6
7
1
2
コマンドのヘルプを表示する
Get-Help Compare-Object
備考
- Compare-Objectはオブジェクトの順序に依存しません。
- 比較するオブジェクトの型は一致している必要があります。
関連項目
- Object系コマンドレット
- New-Object:オブジェクトを作成する
- Compare-Object:オブジェクトを比較する
- Sort-Object:オブジェクトをソートする
- Select-Object:オブジェクトを選択する
- ForEach-Object:オブジェクトを順次処理する
- Where-Object:オブジェクトをプロパティ値で選択する
- Group-Object:オブジェクトをグルーピングする
- Measure-Object:オブジェクトを指定した条件で計算する
- Tee-Object:オブジェクト出力を分岐する