Compartilhar via


Compare-Object

Compara os dois conjuntos de objetos.

Sintaxe

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

Descrição

O cmdlet Compare-Object compara dois conjuntos de objetos. Um conjunto de objetos é o conjunto Reference e o outro é o conjunto Difference.

O resultado da comparação indica se um valor de propriedade apareceu somente no objeto do conjunto Reference (indicado pelo símbolo <=), somente no objeto do conjunto Difference (indicado pelo símbolo =>) ou, se o parâmetro IncludeEqual for especificado, em ambos os objetos (indicado pelo símbolo ==).

Parâmetros

-CaseSensitive

Indica se as comparações devem fazer distinção entre maiúsculas e minúsculas.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-Culture <string>

Especifica a cultura a ser usada para as comparações.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-DifferenceObject <PSObject[]>

Especifica os objetos que são comparados aos objetos de referência.

Necessário?

true

Posição?

2

Valor padrão

Aceitar entrada do pipeline?

true (ByValue)

Aceitar caracteres curinga?

false

-ExcludeDifferent

Exibe somente as características dos objetos comparados que forem iguais.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-IncludeEqual

Exibe as características dos objetos comparados que forem iguais. Por padrão, somente as características que apresentarem diferenças entre os objetos de referência e diferença serão exibidas.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-PassThru

Transmite os objetos que diferiram para o pipeline. Por padrão, este cmdlet não gera nenhuma saída.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-Property <Object[]>

Especifica as propriedades dos objetos de referência e diferença para comparação.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-ReferenceObject <PSObject[]>

Objetos usados como uma referência para comparação.

Necessário?

true

Posição?

1

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-SyncWindow <int>

Define uma região de pesquisa na qual será feita uma tentativa de ressincronizar a ordem se não houver correspondência. O valor padrão é [Int32]::MaxValue.

Necessário?

false

Posição?

named

Valor padrão

[Int32]::MaxValue

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

<CommonParameters>

Esse cmdlet oferece suporte aos parâmetros comuns: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Para obter mais informações, consulte about_Commonparameters.

Entradas e saídas

O tipo de entrada é o tipo dos objetos que você pode canalizar para o cmdlet. O tipo de retorno é o tipo dos objetos que o cmdlet retorna.

Entradas

System.Management.Automation.PSObject

Você pode enviar um objeto DifferenceObject para Compare-Object.

Saídas

Nenhum ou os objetos que sejam diferentes

Quando você usa o parâmetro PassThru, Compare-Object retorna o objeto diferente. Caso contrário, esse cmdlet não gera nenhuma saída.

Exemplo 1

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

Descrição
-----------
Esse comando compara o conteúdo de dois arquivos de texto. Ele exibe somente as linhas que aparecem em um ou outro arquivo, mas não em ambos os arquivos.





Exemplo 2

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

Descrição
-----------
Esse comando compara cada linha do conteúdo de dois arquivos de texto. Ele exibe todas as linhas do conteúdo de ambos os arquivos, indicando se cada linha aparece somente em Textfile1.txt ou Textfile2.txt ou em ambos.





Exemplo 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

Descrição
-----------
Estes comandos comparam os dois conjuntos de objetos do processo. 

O primeiro comando usa o cmdlet Get-Process para obter os processos no computador. Ele os armazena na variável $processes_before. 

O segundo comando inicia o Bloco de Notas.

O terceiro comando usa o cmdlet Get-Process novamente e armazena os processos resultantes na variável $processes_after. 

O quarto comando usa o cmdlet Compare-Object para comparar os dois conjuntos de objetos de processo. Ele exibe as diferenças entre os conjuntos, que incluem a nova instância do Bloco de Notas.





Consulte também

Conceitos

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