Compare-Object
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
Conceptos
Group-Object
Measure-Object
Sort-Object
ForEach-Object
New-Object
Select-Object
Tee-Object
Where-Object