Compare-Object
Confronta due set di oggetti.
Sintassi
Compare-Object [-ReferenceObject] <PSObject[]> [-DifferenceObject] <PSObject[]> [-CaseSensitive] [-Culture <string>] [-ExcludeDifferent] [-IncludeEqual] [-PassThru] [-Property <Object[]>] [-SyncWindow <int>] [<CommonParameters>]
Descrizione
Il cmdlet Compare-Object consente di confrontare due set di oggetti. I due set di oggetti sono Reference e Difference.
Il risultato del confronto indica se un valore di proprietà è presente solo nell'oggetto dell'insieme Reference (indicato dal simbolo <=), solo nell'oggetto dell'insieme Difference (indicato dal simbolo =>) oppure, se viene specificato il parametro IncludeEqual, in entrambi gli oggetti (indicati dal simbolo ==).
Parametri
-CaseSensitive
Indica che per i confronti verrà fatta distinzione tra maiuscole e minuscole.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Culture <string>
Specifica la lingua da utilizzare per i confronti.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-DifferenceObject <PSObject[]>
Specifica gli oggetti confrontati agli oggetti Reference.
Obbligatorio? |
true |
Posizione? |
2 |
Valore predefinito |
|
Accettare input da pipeline? |
true (ByValue) |
Accettare caratteri jolly? |
false |
-ExcludeDifferent
Visualizza solo le caratteristiche uguali degli oggetti confrontati.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-IncludeEqual
Visualizza le caratteristiche uguali degli oggetti confrontati. Per impostazione predefinita, vengono visualizzate solo le caratteristiche che differiscono tra gli oggetti Reference e Difference.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-PassThru
Passa gli oggetti diversi alla pipeline. Per impostazione predefinita, il cmdlet non genera alcun output.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Property <Object[]>
Specifica le proprietà degli oggetti Reference e Difference da confrontare.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-ReferenceObject <PSObject[]>
Oggetti utilizzati come riferimento per il confronto.
Obbligatorio? |
true |
Posizione? |
1 |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-SyncWindow <int>
Definisce un'area di ricerca in cui viene effettuato un tentativo di risincronizzazione dell'ordine in caso di mancata corrispondenza. Il valore predefinito è [Int32]::MaxValue.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
[Int32]::MaxValue |
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
<CommonParameters>
Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.
Input e output
Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.
Input |
System.Management.Automation.PSObject È inoltre possibile reindirizzare un oggetto DifferenceObject a Compare-Object. |
Output |
Nessuno o gli oggetti diversi Quando si utilizza il parametro PassThru, Compare-Object restituisce gli oggetti che differiscono. Negli altri casi, il cmdlet non genera alcun output. |
Esempio 1
C:\PS>compare-object -referenceobject $(get-content C:\test\testfile1.txt) -differenceobject $(get-content C:\test\testfile2.txt)
Descrizione
-----------
Tramite questo comando verrà confrontato il contenuto di due file di testo. Vengono visualizzate solo le righe riportate in uno o nell'altro file, ma non in entrambi.
Esempio 2
C:\PS>compare-object -referenceobject $(get-content C:\Test\testfile1.txt) -differenceobject $(get-content C:\Test\testfile2.txt) -includeequal
Descrizione
-----------
Tramite questo comando verrà confrontata ogni riga del contenuto di due file di testo. Verranno visualizzate tutte le righe del contenuto di entrambi i file con l'indicazione dei casi in cui la singola riga è presente solo nel file Textfile1.txt o nel file Textfile2.txt oppure in entrambi i file.
Esempio 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
Descrizione
-----------
Tramite questi comandi verranno confrontati due set di oggetti processo.
Nel primo comando viene utilizzato il cmdlet Get-Process per ottenere i processi disponibili nel computer. I processi vengono archiviati nella variabile $processes_before.
Il secondo comando avvia Blocco note.
Nel terzo comando viene nuovamente utilizzato il cmdlet Get-Process e i processi risultanti vengono archiviati nella variabile $processes_after
Nel quarto comando viene utilizzato il cmdlet Compare-Object per confrontare i due set di oggetti processo. Vengono visualizzate le differenze tra di essi, inclusa la nuova istanza di Blocco note.
Vedere anche
Concetti
Group-Object
Measure-Object
Sort-Object
ForEach-Object
New-Object
Select-Object
Tee-Object
Where-Object