PowerShell es una herramienta potente para gestionar datos, pero generalmente proporciona demasiada información de una vez. Como sabes, un exceso de información puede resultar abrumador y difícil de analizar. Sin embargo, no te preocupes. El cmdlet PowerShell Select-Object
será útil.
En este tutorial, aprenderás los conceptos básicos del cmdlet Select-Object
para filtrar o reducir resultados de muchas maneras diferentes.
Sigue leyendo ¡y comienza la gestión de datos sin dolor!
Prerrequisitos
Este tutorial incluye demostraciones prácticas. Para seguirlo, asegúrate de tener un sistema con PowerShell instalado. Este tutorial utiliza Windows 10 con PowerShell 7, pero cualquier versión moderna debería funcionar también.
¿Qué es el cmdlet Select-Object de PowerShell?
El cmdlet Select-Object
simplifica la gestión de datos al permitirte seleccionar propiedades específicas de un objeto o conjunto de datos. Al mismo tiempo, puedes cambiar el nombre de las propiedades o crear propiedades calculadas basadas en las existentes.
La sintaxis básica de Select-Object
es la siguiente donde:
Parameter | Function |
---|---|
-InputObject |
Specifies the object or data set you want to work with, which can be an object, an array of objects, or an output of another cmdlet. |
Property |
Specifies the property or properties to select from the InputObject parameter. You can specify multiple properties separated by commas. |
Optional Parameters |
Allows you to refine your selection, such as selecting a certain number of objects or skipping objects. |
Seleccionar objetos por propiedades
Dado que se necesita más que una breve introducción para satisfacer tu deseo de aprender sobre el cmdlet Select-Object
, ¿por qué no comenzar con uno de sus casos de uso comunes? Inicia este tutorial seleccionando una propiedad específica de un objeto con el cmdlet Select-Object
.
Supongamos que tienes una lista de procesos en ejecución en tu computadora, pero solo deseas ver los nombres de cada proceso. Especificar la propiedad Name
al cmdlet Select-Object
hará el truco.
Abre PowerShell y ejecuta el siguiente comando Get-Process
para recuperar e imprimir una lista de todos los procesos solo (Select-Object
) por Name
.

Además de los procesos en ejecución, el cmdlet
Select-Object
te permite trabajar en un archivo CSV. Supongamos que tienes un archivo CSV con muchas columnas pero solo necesitas algunas de ellas. En ese caso, permite que el cmdletSelect-Object
elija solo las columnas relevantes para que puedas manipular y analizar los datos.
Ahora, ejecuta el siguiente comando para seleccionar múltiples propiedades (`Select-Object
`): `Name
` y `CPU
` (separadas por comas). Esta función ayuda cuando trabajas con conjuntos de datos grandes donde solo necesitas algunas propiedades de cada objeto.
Además, este comando también ordena la lista de objetos (`Sort-Object
`) en orden `-Descending` con la propiedad `CPU
` como referencia.
A continuación, puedes ver los procesos listados, comenzando por el más consumidor de recursos, Google Chrome (si lo tienes instalado).

Creación de una propiedad calculada
Cuando busques propiedades que se ajusten mejor a tus necesidades, considera crear una propiedad calculada. ¿Por qué? Las propiedades calculadas te permiten manipular y transformar datos, combinar propiedades existentes, realizar operaciones matemáticas o formatear datos de una manera específica.
Para crear una propiedad calculada, debes especificar un nombre de nueva propiedad y una expresión que defina cómo calcular el valor de la propiedad:
Ejecuta el comando a continuación para realizar lo siguiente:
- Recuperar una lista de procesos en ejecución (`
Get-Process
`), seleccionando solo (`Select-Object
`) las propiedades `Name
` y `CPU
`. - Cree una nueva propiedad calculada con el
Nombre
Memoria (MB)
, que calcula el uso de memoria de cada proceso en megabytes. El uso de memoria se calcula utilizando unaExpresión
que divide la propiedadWorkingSet
por1MB
. Cualquier expresión válida de PowerShell funciona para crear una propiedad calculada. - Imprime todos los procesos en ejecución recuperados en orden
-Descendente
según la propiedad calculadaMemoria (MB)
.

Excluyendo una Propiedad Específica
En la vida real, los resultados de un comando Select-Object
pueden contener información sensible, como nombres de usuario y contraseñas. ¿Cómo evitar este riesgo?
Para evitar que se muestren datos sensibles en la salida, agregue el parámetro -ExcludeProperty
para excluir una propiedad específica de la salida.
Ejecute el siguiente comando para realizar las siguientes tareas:
- Recuperar una lista de todos los archivos y carpetas (
Get-ChildItem
) en el directorioC:\\
de forma recursiva (-Recurse
).
- Pase la salida al cmdlet
Select-Object
para seleccionar las propiedadesName
,Length
yLastWriteTime
. - Excluya (
-ExcludeProperty
) la propiedadFullName
de la salida. Al hacerlo, se evita que se muestren las rutas completas en la salida, lo que puede contener información confidencial.

Saltear el primer o último número de objetos
Cuando se trabaja con conjuntos de datos masivos, encontrar los datos que necesita puede ser como buscar un diamante en una mina de carbón. Pero ¿por qué perder tiempo filtrando datos irrelevantes?
En PowerShell, el cmdlet Select-Object
proporciona dos parámetros que le permiten excluir el primer (-Skip
) y último (-SkipLast
) número de objetos en la salida, respectivamente.
Para ver cómo funciona omitir varios objetos de una salida:
Ejecute el siguiente comando para obtener todos los procesos en ejecución (Get-Process
) pero -Skip
los primeros 100
objetos devueltos.
Tenga en cuenta que el número de objetos omitidos se basa en valores enteros (números positivos y enteros sin puntos decimales), que en este caso es
100
.

Ahora, ejecute el siguiente comando para obtener una lista de los contenidos del directorio de trabajo (Get-ChildItem
) pero omita los últimos (-SkipLast
) 100
objetos devueltos.

Seleccionar el Primer o Último Número de Objetos
Además de saltar el primer y último número de objetos, también puedes estar interesado en seleccionar el primer y último número de objetos en su lugar. El cmdlet Select-Object
admite esta función con los parámetros First
y Last
que te permiten omitir todo lo demás para ahorrar tiempo y recursos.
Ejecuta el siguiente comando para obtener todos los procesos pero solo selecciona (Select-Object
) los primeros -First 10
objetos devueltos.

Ahora, ejecuta el comando a continuación para obtener todos los contenidos del directorio de trabajo (Get-ChildItem
) pero solo selecciona (Select-Object
) los últimos -Last 10
objetos devueltos.

Seleccionando objetos únicos exclusivamente
A medida que trabajas con conjuntos de datos más grandes, encontrarás valores duplicados que puedes querer excluir de la salida, lo cual es típico. Pero lo bueno del cmdlet Select-Object
es que no tienes que excluir los valores duplicados manualmente.
Al agregar el parámetro -Unique
, puedes seleccionar solo los objetos únicos de la salida, optimizando tu análisis y mejorando la precisión de tus resultados.
Ejecuta el comando a continuación para seleccionar (Select-Object
) y devolver los primeros -First 2
objetos.
A continuación, puedes ver dos objetos devueltos independientemente de si el otro es un valor duplicado.

Por último, ejecuta el siguiente comando para devolver solo un valor -Unique
para cada uno de los -First 2
objetos seleccionados.
Esta vez, puedes ver solo uno devuelto de los primeros dos objetos seleccionados, ya que el otro es simplemente un valor duplicado. Como te das cuenta, esta salida demuestra que el parámetro -Unique
es útil para descartar rápidamente cualquier objeto duplicado en tus datos.

Conclusión
PowerShell tiende a producir una sobrecarga de información. Pero en este tutorial, aprendiste cómo el cmdlet Select-Object
de PowerShell ayuda a simplificar tus datos para ver solo la información necesaria.
Has visto cómo diferentes parámetros te permiten seleccionar y excluir datos, especialmente valores duplicados de una salida. Con el cmdlet Select-Object
, gestionar grandes cantidades de datos no tiene por qué ser una tarea desalentadora.
En este punto, puedes refinar rápidamente tus resultados para que sean más adecuados para el análisis y la solución de problemas. ¿Por qué no aprender cómo formatear tus propiedades calculadas a continuación para mejorar la legibilidad y la usabilidad?
Source:
https://adamtheautomator.com/powershell-select-object/