PowerShell Compare-Object Cmdlet

Hola a todos

Bienvenidos a CloudAffaire y esto es Debjeet.

En la última entrada del blog, hemos discutido Tee-Object cmdlet en PowerShell.

PowerShell Tee-Object Cmdlet

En esta entrada del blog, vamos a discutir Compare-Object cmdlet en PowerShell. Puede utilizar el cmdlet Compare-Object para comparar dos objetos donde un conjunto de objetos es la fuente o la referencia y otro conjunto de objetos es el objetivo o la diferencia. El cmdlet Compare-Object intenta comparar los objetos basándose en cualquier método de comparación que encuentre en el objeto. Si no se encuentra ningún objeto de comparación, realiza una comparación de cadenas convirtiendo el objeto en una cadena. También se puede pasar una o más propiedades para la comparación, cuando se pasan propiedades la comparación se hace en base a esas propiedades solamente.

Salida del cmdlet Compare-Object:

  • (<=): el valor de la propiedad apareció sólo en el objeto de referencia
  • (=>): el valor de la propiedad apareció sólo en el objeto de diferencia
  • (==): el valor de la propiedad apareció tanto en el objeto de referencia como en el objeto de diferencia

Nota: Si la referencia o los objetos de diferencia son nulos ($null), Compare-Object genera un error de terminación.

Sintaxis del cmdlet Compare-Object:

Shell

1
2
3
4
5
6
7
8
9
10
11

# Compare-Objeto
## <PSObject>
# <PSObject>
##
## >]
##
##
#
##
##
##

Compare-Lista de argumentos del cmdlet de objetos:

  • -CaseSensitive: Indica que las comparaciones deben distinguir entre mayúsculas y minúsculas.
  • Cultura: Especifica la cultura a utilizar para las comparaciones.
  • -DifferenceObject: Especifica los objetos que se comparan con los objetos de referencia.
  • -ExcludeDifferent: Indica que este cmdlet muestra sólo las características de los objetos comparados que son iguales. Las diferencias entre los objetos se descartan.
  • -IncludeEqual: IncludeEqual muestra las coincidencias entre los objetos de referencia y de diferencia.
  • -PassThru: Cuando se utiliza el parámetro PassThru, Compare-Object omite la envoltura PSCustomObject alrededor de los objetos comparados y devuelve los objetos diferentes, sin cambios.
  • -Propiedades: Especifica una matriz de propiedades de los objetos de referencia y diferencia a comparar.
  • -ReferenceObject: Especifica una matriz de objetos utilizados como referencia para la comparación.
  • -SyncWindow: Especifica el número de objetos adyacentes que Compare-Object inspecciona mientras busca una coincidencia en una colección de objetos.

Cmdlet PowerShell Compare-Object:

Shell

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

##########################################
## PowerShell | Cmdlet | Compare-Objeto ##
##########################################
# PowerShell última versión (5)
## declarar dos arrays con datos de tipo cadena
$a = «gato», «rata», «perro», «hombre»
$b = «manzana», «plátano», «perro», «mango»
## comparar dos objetos en PowerShell
Comparar-Objeto -ObjetoDeReferencia $a -ObjetoDeDiferencia $b
## comparar dos objetos en PowerShell con distinción de mayúsculas y minúsculas
Comparar-Objeto -Objeto de referencia $a -Objeto de diferencia $b -Sensible a mayúsculas y minúsculas
## comparar dos objetos en PowerShell y mostrar la diferencia y la similitud
Comparar-Objeto -Objeto de referencia $a -Objeto de diferencia $b -IncludeEqual
## compara dos objetos en PowerShell y muestra lo que es común
Compare-Object -ReferenceObject $a -DifferenceObject $b -IncludeEqual -ExcludeDifferent
# comparar dos objetos en PowerShell basado en una propiedad específica del objeto
Comparar-Objeto -ObjetoDeDiferencia $a -ObjetoDeDiferencia $b -LongitudDePropiedad

Espero que hayan disfrutado de este artículo. En la próxima entrada del blog, vamos a discutir Add-Content cmdlet en PowerShell.

Para obtener más detalles sobre PowerShell, amablemente seguir por debajo de la documentación oficial

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about?view=powershell-5.1

Deja una respuesta

Tu dirección de correo electrónico no será publicada.