PowerShell: dónde-objeto frente a seleccionar-objeto
¿Está confundido y no puede saber si debe usar Where-Object o Select-Object en PowerShell? En este tutorial de PowerShell, explicaré las diferencias entre el objeto donde de PowerShell y el objeto seleccionado y cuándo debes usar cuál.
¿Qué es el objeto Dónde en PowerShell?
El cmdlet Where-Object en PowerShell se usa para filtrar objetos según sus valores de propiedad. Le permite pasar por objetos que cumplen ciertos criterios y excluir aquellos que no lo hacen. Básicamente, Where-Object es una herramienta de filtrado.
Por ejemplo, si desea encontrar procesos que consumen más de 50 MB de memoria, puede usar Where-Object de esta manera:
Get-Process | Where-Object { $_.WS -gt 50MB }En este comando, Get-Process recupera todos los procesos y Where-Object filtra estos procesos según la condición proporcionada en el bloque de script { $_.WS - gt 50 MB }, donde $_ representa cada objeto (proceso) en la canalización, .WS se refiere al conjunto de trabajo (uso de memoria) y -gt es el operador para 'mayor que'.
¿Qué es Seleccionar-Objeto en PowerShell?
Por otro lado, Select-Object se utiliza para seleccionar propiedades específicas de un objeto o un conjunto de objetos. También se puede utilizar para crear nuevas propiedades calculadas o para seleccionar un número único o específico de objetos de una colección.
Por ejemplo, si desea mostrar solo el nombre y el ID de todos los procesos, puede usar Select-Object de esta manera:
Get-Process | Select-Object Name, IdEste comando generará una tabla con solo las propiedades Nombre e Id. de cada proceso.
Ejemplos de uso de objeto Where y Select-Object
Consideremos un escenario del mundo real en el que es posible que necesite utilizar Where-Object y Select-Object en PowerShell. Suponga que necesita recuperar una lista de los servicios actualmente en ejecución y mostrar su nombre y estado. Así es como puede hacer esto utilizando el siguiente script de PowerShell.
Get-Service | Where-Object { $_.Status -eq 'Running' } | Select-Object Name, StatusEn esta canalización, Get-Service recupera todos los servicios, Where-Object filtra solo los servicios que se están ejecutando y Select-Object selecciona el nombre. y Propiedades de estado que se mostrarán.
Consulte ¿Cómo cambiar el directorio en PowerShell?
Diferencias entre PowerShell Where-Object y Select-Object
Ahora, resumamos las diferencias entre estos dos cmdlets: PowerShell Where-Object y Select-Object.
| Feature | Where-Object | Select-Object |
|---|---|---|
| Purpose | Filters objects based on property values | Selects specific properties of objects |
| Usage | To include/exclude objects in the pipeline | To manipulate or display object properties |
| Example | Get-Process | Where-Object { $_.CPU -gt 10 } | Get-Process | Select-Object Name, CPU |
| Output | Objects that meet the criteria | Objects with only the selected properties |
| Flexibility | Used for comparison operations | Used for property selection and manipulation |
Conclusión
Where-Object y Select-Object son dos cmdlets distintos en PowerShell con diferentes propósitos. Where-Object es un filtro que le permite especificar condiciones para incluir o excluir objetos en la canalización, mientras que Select-Object se usa para seleccionar propiedades específicas de objetos o para crear nuevas propiedades calculadas.
Espero que ahora conozca las diferencias entre los cmdlets Where-Object y Select-Object de PowerShell y sepa dónde usar Where-Object y dónde usar Select-Object en PowerShell.
