次の方法で共有


Compare-Object

2 セットのオブジェクトを比較します。

構文

Compare-Object [-ReferenceObject] <PSObject[]> [-DifferenceObject] <PSObject[]> [-CaseSensitive] [-Culture <string>] [-ExcludeDifferent] [-IncludeEqual] [-PassThru] [-Property <Object[]>] [-SyncWindow <int>] [<CommonParameters>]

説明

Compare-Object コマンドレットは 2 セットのオブジェクトを比較します。Reference のセットと Difference のセットです。

比較の結果は、プロパティ値が Reference セットのオブジェクトにのみ存在する (<= 記号で示されます)、Difference セットのオブジェクトにのみ存在する (=> 記号で示されます)、または IncludeEqual パラメーターが指定されている場合は両方のオブジェクトに存在する (== 記号で示されます) のいずれかを示します。

パラメーター

-CaseSensitive

比較されるときに、大文字と小文字が区別されることを示します。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Culture <string>

比較に使用するカルチャを指定します。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-DifferenceObject <PSObject[]>

Reference オブジェクトと比較するオブジェクトを指定します。

必須

true

位置

2

既定値

パイプライン入力を許可する

true (ByValue)

ワイルドカード文字を許可する

false

-ExcludeDifferent

比較されるオブジェクトの特性で等しいものだけを表示します。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-IncludeEqual

比較されるオブジェクトの特性で等しいものを表示します。既定では、Reference オブジェクトと Difference オブジェクトの間で異なる特性のみが表示されます。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-PassThru

異なるオブジェクトをパイプラインに渡します。既定では、このコマンドレットによる出力はありません。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Property <Object[]>

比較する Reference オブジェクトと Difference オブジェクトのプロパティを指定します。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-ReferenceObject <PSObject[]>

比較の参照として使用されるオブジェクト。

必須

true

位置

1

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-SyncWindow <int>

一致していない場合に順序の再同期を試みる検索領域を定義します。既定値は [Int32]::MaxValue です。

必須

false

位置

named

既定値

[Int32]::MaxValue

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

<CommonParameters>

このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。詳細については、次を参照してください: about_Commonparameters.

入力と出力

入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。

入力

System.Management.Automation.PSObject

パイプを使用して DifferenceObject オブジェクトを Compare-Object に渡すことができます。

出力

なし、または異なるオブジェクト

PassThru パラメーターを使用すると、Compare-Object は異なるオブジェクトを返します。それ以外の場合、このコマンドレットによる出力はありません。

例 1

C:\PS>compare-object -referenceobject $(get-content C:\test\testfile1.txt) -differenceobject $(get-content C:\test\testfile2.txt)

説明
-----------
このコマンドは、2 つのテキスト ファイルの内容を比較します。両方のファイルには含まれていないが、どちらか一方のファイルに含まれている行のみを表示します。





例 2

C:\PS>compare-object -referenceobject $(get-content C:\Test\testfile1.txt) -differenceobject $(get-content C:\Test\testfile2.txt) -includeequal

説明
-----------
このコマンドは、2 つのテキスト ファイルの各行の内容を比較します。両方のファイルのすべての行を表示し、各行が Textfile1.txt または Textfile2.txt にのみ含まれるのか、両方のファイルに含まれているのかを示します。





例 3

C:\PS>$processes_before = get-process

C:\PS> notepad

C:\PS> $processes_after  = get-process

C:\PS> compare-object -referenceobject $processes_before -differenceobject $processes_after

説明
-----------
これらのコマンドは、2 つのプロセス オブジェクトのセットを比較します。

最初のコマンドは、Get-Process コマンドレットを使用してコンピューター上のプロセスを取得します。これは $processes_before 変数に保存されます。

2 番目のコマンドは、Notepad を起動します。

3 番目のコマンドは再び Get-Process コマンドレットを使用し、取得されたプロセスを $processes_after 変数に保存します。

4 番目のコマンドは、Compare-Object コマンドレットを使用してプロセス オブジェクトの 2 つのセットを比較します。2 つのセット間の相違点を表示します。これには Notepad の新しいインスタンスが含まれます。





関連項目

概念

Group-Object
Measure-Object
Sort-Object
ForEach-Object
New-Object
Select-Object
Tee-Object
Where-Object