Freigeben über


Compare-Object

Vergleicht zwei Sätze von Objekten.

Syntax

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

Beschreibung

Das Cmdlet "Compare-Object" vergleicht zwei Objektsätze. Bei einem Objektsatz handelt es sich um den Referenzsatz und bei dem anderen um den Differenzsatz.

Das Vergleichsergebnis gibt an, ob ein Eigenschaftenwert nur im Objekt aus dem Referenzsatz (mit dem Symbol <= angegeben), nur im Objekt aus dem Differenzsatz (mit dem Symbol => angegeben) oder, wenn der IncludeEqual-Parameter angegeben wurde, in beiden Objekten (mit dem Symbol == angegeben) vorhanden war.

Parameter

-CaseSensitive

Gibt an, dass bei Vergleichen die Groß-/Kleinschreibung berücksichtigt werden soll.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-Culture <string>

Gibt die Kultur an, die für Vergleiche verwendet werden soll.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-DifferenceObject <PSObject[]>

Gibt die Objekte an, die mit den Referenzobjekten verglichen werden.

Erforderlich?

true

Position?

2

Standardwert

Pipelineeingaben akzeptieren?

true (ByValue)

Platzhalterzeichen akzeptieren?

false

-ExcludeDifferent

Zeigt nur die Merkmale verglichener Objekte an, die übereinstimmen.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-IncludeEqual

Zeigt die Merkmale verglichener Objekte an, die übereinstimmen. Standardmäßig werden nur die Merkmale angezeigt, die sich zwischen den Referenz- und Differenzobjekten unterscheiden.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-PassThru

Übergibt die abweichenden Objekte an die Pipeline. Standardmäßig wird von diesem Cmdlet keine Ausgabe generiert.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-Property <Object[]>

Gibt die Eigenschaften der zu vergleichenden Referenz- und Differenzobjekte an.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-ReferenceObject <PSObject[]>

Als Referenz für einen Vergleich verwendete Objekte

Erforderlich?

true

Position?

1

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-SyncWindow <int>

Definiert einen Suchbereich, in dem versucht wird, die Reihenfolge neu zu synchronisieren, wenn keine Übereinstimmung vorhanden ist. Der Standardwert ist "[Int32]::MaxValue".

Erforderlich?

false

Position?

named

Standardwert

[Int32]::MaxValue

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

<CommonParameters>

Dieses Cmdlet unterstützt die folgenden allgemeinen Parameter: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer und -OutVariable. Weitere Informationen finden Sie unter about_Commonparameters.

Eingaben und Ausgaben

Der Eingabetyp ist der Typ der Objekte, die über die Pipeline an das Cmdlet übergeben werden können. Der Rückgabetyp ist der Typ der Objekte, die das Cmdlet zurückgibt.

Eingaben

System.Management.Automation.PSObject

Sie können ein DifferenceObject-Objekt über die Pipeline an Compare-Object übergeben.

Ausgaben

Keiner oder die Objekte, die sich unterscheiden

Wenn Sie den PassThru-Parameter verwenden, werden von Compare-Object die Objekte zurückgegeben, die sich unterscheiden. Andernfalls wird von diesem Cmdlet keine Ausgabe generiert.

Beispiel 1

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

Beschreibung
-----------
Mit diesem Befehl wird der Inhalt von zwei Textdateien verglichen. Zeigt nur die Zeilen an, die entweder in der einen oder in der anderen Datei, jedoch nicht in beiden Dateien vorhanden sind.





Beispiel 2

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

Beschreibung
-----------
Mit diesem Befehl werden die einzelnen Inhaltszeilen in zwei Textdateien verglichen. Zeigt alle Inhaltszeilen aus beiden Dateien an, und es wird für jede Zeile angegeben, ob sie nur in "Textfile1.txt", nur in "Textfile2.txt" oder in beiden Dateien vorhanden ist.





Beispiel 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

Beschreibung
-----------
Mit diesen Befehlen werden zwei Sätze von Prozessobjekten verglichen. 

Im ersten Befehl werden mit dem Cmdlet "Get-Process" die Prozesse auf dem Computer abgerufen. Diese werden in der Variablen "$processes_before" gespeichert. 

Mit dem zweiten Befehl wird Editor gestartet.

Mit dem dritten Befehl wird wieder das Cmdlet "Get-Process" verwendet, und die resultierenden Prozesse werden in der Variablen "$processes_after" gespeichert. 

Mit dem vierten Befehl wird das Cmdlet "Compare-Object" verwendet, um die beiden Sätze von Prozessobjekten zu vergleichen. Dabei werden die Unterschiede zwischen den Sätzen angezeigt, wozu auch die neue Instanz von Editor gehört.





Siehe auch

Konzepte

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