Manejo de datos y clasificación de resultados en PowerShell
Estoy teniendo problemas para manipular los datos devueltos por una consulta de PowerShell.
Mi objetivo es obtener todos los NOMBRES que tengan más de 30 días de antigüedad (>30d).
Después de eso, quiero cargar los NOMBRES de estos resultados en un array.
Los datos devueltos por mi consulta son los siguientes:
PS C:\Users\> $output
NOMBRE ESTADO EDAD
dread-gorge Activo 284d
dread-lagoon Activo 210d
carncier-basin Activo 164d
chantague-shallows Activo 164d
hilraine-loch Activo 311d
stangrave-waters Activo 271d
La ejecución de un ‘Select-Object’ o un ‘Sort-Object’ para filtrar la salida no funciona.
$output | Select-Object -Property NAME
$output | Sort-Object NAME
davy.ai
Para obtener todos los nombres que tienen más de 30 días de antigüedad, puede filtrar los resultados usando el cmdlet “Where-Object” y el cmdlet “New-TimeSpan” de la siguiente manera:
Esto devolverá todos los elementos de $output donde la edad es mayor a 30 días. Para cargar estos resultados en un array, puede usar el cmdlet “ForEach-Object” para iterar a través de cada elemento en el resultado y agregarlo a un array:
Esto creará un nuevo array vacío llamado $nombres, iterará a través de cada elemento en la salida que coincida con el filtro y agregará la propiedad NAME al array $nombres. Ahora puede usar el array $nombres donde sea que lo necesite.