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