Capítulo 22. Comparación de datos

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

22.0 Introducción

Cuando trabajas en PowerShell, es habitual trabajar con colecciones de objetos. La mayoría de los comandos de PowerShell generan objetos, al igual que muchos de los métodos con los que trabajas en .NET Framework. Para ayudarte a trabajar con estas colecciones de objetos, PowerShell introduce el cmdlet Compare-Object. El cmdlet Compare-Object proporciona una funcionalidad similar a la de los conocidos comandos diff, pero con un sabor orientado a objetos.

22.1 Comparar la salida de dos comandos

Problema

En quieres comparar la salida de dos comandos.

Solución

Para comparar en la salida de dos comandos, almacena la salida de cada comando en variables y luego utiliza el cmdlet Compare-Object para comparar esas variables:

PS > notepad
PS > $processes = Get-Process
PS > Stop-Process -ProcessName Notepad
PS > $newProcesses = Get-Process
PS > Compare-Object $processes $newProcesses

InputObject                           SideIndicator
-----------                           -------------
System.Diagnostics.Process (notepad)  <=

Debate

La Solución muestra cómo determinar qué procesos han salido entre las dos llamadas a Get-Process. El SideIndicator de <= nos dice que el proceso estaba presente en la colección izquierda ($processes) pero no en la derecha ($newProcesses). Para trabajar con el objeto real que era diferente, accede a la propiedad InputObject :

PS > $diff = ...

Get Libro de cocina PowerShell, 4ª edición now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.