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




Argomenti della Guida