Búsqueda de sitios web

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, Id

Este 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, Status

En 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.

FeatureWhere-ObjectSelect-Object
PurposeFilters objects based on property valuesSelects specific properties of objects
UsageTo include/exclude objects in the pipelineTo manipulate or display object properties
ExampleGet-Process | Where-Object { $_.CPU -gt 10 }Get-Process | Select-Object Name, CPU
OutputObjects that meet the criteriaObjects with only the selected properties
FlexibilityUsed for comparison operationsUsed 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.

Artículos relacionados