Compara dos conjuntos de objetos.

Sintaxis

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

Descripción

El cmdlet Compare-Object compara dos conjuntos de objetos. Uno de los conjuntos de objetos es el conjunto Reference y el otro es el conjunto Difference.

El resultado de la comparación indica si el valor de una propiedad aparece únicamente en el objeto del conjunto Reference (lo que se indica mediante el símbolo <=), si aparece únicamente en el objeto del conjunto Difference (lo que se indica mediante el símbolo =>) o, en caso de que se haya especificado el parámetro IncludeEqual, si aparece en los dos objetos (lo que se indica mediante el símbolo ==).

Parámetros

-CaseSensitive

Indica que en las comparaciones debe distinguirse entre mayúsculas y minúsculas.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Culture <string>

Especifica la referencia cultural que se va a usar en las comparaciones.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-DifferenceObject <PSObject[]>

Especifica los objetos que se comparan con los objetos de referencia.

¿Requerido?

true

¿Posición?

2

Valor predeterminado

¿Aceptar canalización?

true (ByValue)

¿Aceptar caracteres comodín?

false

-ExcludeDifferent

Muestra únicamente las características de los objetos comparados que son iguales.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-IncludeEqual

Muestra las características de los objetos comparados que son iguales. De manera predeterminada, solo se muestran las características que son diferentes en los objetos de referencia y en los objetos de diferencia.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-PassThru

Pasa a la canalización los objetos que son diferentes. De forma predeterminada, este cmdlet no genera resultados.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Property <Object[]>

Especifica las propiedades de los objetos de referencia y de diferencia que se van a comparar.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-ReferenceObject <PSObject[]>

Objetos usados como referencia en una comparación.

¿Requerido?

true

¿Posición?

1

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-SyncWindow <int>

Define una región de búsqueda en la que se intenta sincronizar de nuevo el orden si no hay coincidencia. El valor predeterminado es [Int32]::MaxValue.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

[Int32]::MaxValue

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

<CommonParameters>

Este cmdlet admite los parámetros comunes: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer y -OutVariable. Para obtener más información, vea about_Commonparameters.

Entradas y salidas

El tipo de entrada es el tipo de los objetos que se pueden canalizar al cmdlet. El tipo devuelto es el tipo de los objetos que el cmdlet devuelve.

Entradas

System.Management.Automation.PSObject

Puede canalizar un objeto DifferenceObject a Compare-Object.

Salidas

Ninguno o los objetos que son diferentes

Cuando se usa el parámetro PassThru, Compare-Object devuelve los objetos que son diferentes. En caso contrario, este cmdlet no genera resultados.

Ejemplo 1

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

Descripción
-----------
Este comando compara el contenido de dos archivos de texto. Solo muestra las líneas que aparecen en uno de los dos archivos; no muestra las líneas que aparecen en ambos archivos.






Ejemplo 2

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

Descripción
-----------
Este comando compara cada una de las líneas del contenido de dos archivos de texto. Muestra todas las líneas de contenido de los dos archivos e indica si las líneas aparecen únicamente en el archivo Textfile1.txt, en el archivo Textfile2.txt o en los dos archivos.






Ejemplo 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

Descripción
-----------
Estos comandos comparan dos conjuntos de objetos de proceso. 

El primer comando utiliza el cmdlet Get-Process para obtener los procesos del equipo. Los almacena en la variable $processes_before. 

El segundo comando inicia Bloc de notas.

El tercer comando usa de nuevo el cmdlet Get-Process y almacena los procesos resultantes en la variable $processes_after. 

El cuarto comando usa el cmdlet Compare-Object para comparar los dos conjuntos de objetos de proceso. Muestra las diferencias que hay entre ellos, como la nueva instancia de Bloc de notas.






Vea también




Tabla de contenido