Matriz de host de escritura de PowerShell como tabla | Matriz de formato PowerShell como tabla
Recientemente, recibí el requisito de formatear una matriz como tabla en PowerShell. Utilicé Write-Host y Format-Table. En este tutorial de PowerShell, explicaré cómo mostrar los elementos de una matriz como una tabla usando el cmdlet Write-Host en PowerShell. Y también cómo usar Format-Table para formatear una matriz como tabla en PowerShell.
En PowerShell, puede mostrar una matriz como una tabla usando el cmdlet Write-Host combinado con un bucle u otros comandos de formato. Sin embargo, Write-Host por sí solo no formatea la salida como una tabla. En su lugar, normalmente usaría Format-Table para formatear la matriz y luego generaría cada línea con Write-Host. Por ejemplo: $matriz | Formato-Tabla | Fuera de cadena -Stream | Para cada objeto {Write-Host $_}. Esta secuencia de comandos formatea la matriz como una tabla, la convierte en una cadena y luego genera cada línea individualmente con Write-Host.
Matriz de host de escritura de PowerShell como tabla
Supongamos que tengo una matriz de PowerShell que tiene los siguientes elementos.
$myArray = "Item1", "Item2", "Item3"Ahora veremos cómo utilizar el cmdlet Write-Host.
El cmdlet Write-Host en PowerShell se usa para mostrar la salida a la consola. Sin embargo, no es la mejor herramienta para crear tablas porque no tiene funciones integradas para formatear matrices como tablas. Cuando pasa una matriz a Write-Host, simplemente mostrará los elementos de la matriz separados por espacios:
Write-Host $myArray
Producción :
Item1 Item2 Item3Formatear matriz como tabla en PowerShell
Si bien Write-Host es limitado, PowerShell tiene otros cmdlets que son más adecuados para mostrar matrices como tablas, como Format-Table o crear tablas personalizadas usando propiedades calculadas.
Usando formato-tabla
En PowerShell, puede formatear una matriz como una tabla usando el cmdlet Format-Table , que le permite mostrar los elementos de una matriz en un formato tabular estructurado.
Aquí hay un ejemplo.
$myArray = "Item1", "Item2", "Item3"
$myArray | Format-TableSin embargo, Format-Table se usa principalmente con matrices de objetos donde cada objeto representa una fila y las propiedades del objeto representan columnas.
A continuación se muestra un ejemplo básico de cómo utilizar Format-Table con una matriz de objetos:
# Define an array of custom objects
$people = @(
@{Name='Alice'; Age=25; Job='Engineer'},
@{Name='Bob'; Age=30; Job='Designer'},
@{Name='Charlie'; Age=28; Job='Architect'}
)
# Convert the array to objects and format as a table
$people | ForEach-Object { New-Object PSObject -Property $_ } | Format-Table -AutoSizeEn este ejemplo, creamos una matriz de tablas hash, cada una de las cuales representa a una persona con las propiedades Nombre, Edad y Trabajo. Luego canalizamos (|) la matriz a ForEach-Object, donde convertimos cada tabla hash en un PSObject. Finalmente, canalizamos los objetos a Format-Table con el parámetro -AutoSize , que ajusta el ancho de las columnas para que se ajusten al contenido.
El resultado aparecerá como una tabla:
Name Age Job
---- --- ---
Alice 25 Engineer
Bob 30 Designer
Charlie 28 ArchitectEjecuté el script de PowerShell anterior usando código VS y puedes ver el resultado en la siguiente captura de pantalla:
Para un formato más avanzado, puede personalizar qué propiedades mostrar y en qué orden especificándolas en el cmdlet Format-Table . Por ejemplo, si solo desea mostrar las propiedades Nombre y Trabajo :
$people | ForEach-Object { New-Object PSObject -Property $_ } | Format-Table Name, Job -AutoSizeEsto generará:
Name Job
---- ---
Alice Engineer
Bob Designer
Charlie ArchitectCree una tabla personalizada para formatear la matriz como tabla en PowerShell
Si desea mostrar una matriz simple como una tabla con encabezados en PowerShell, es posible que necesite crear objetos personalizados y luego canalizarlos a Format-Table. He aquí un ejemplo:
$myArray = @(
[PSCustomObject]@{Element="Item1"},
[PSCustomObject]@{Element="Item2"},
[PSCustomObject]@{Element="Item3"}
)
$myArray | Format-Table -Property ElementProducción :
Element
-------
Item1
Item2
Item3Puede ver el resultado en la siguiente captura de pantalla:
Tabla de varias columnas de una matriz multidimensional en PowerShell
Para un escenario más avanzado, digamos que tiene una matriz multidimensional y desea mostrarla en una tabla con varias columnas. Puedes crear una tabla personalizada como esta:
$multiArray = @(
@("Item1", "Description1", "Value1"),
@("Item2", "Description2", "Value2"),
@("Item3", "Description3", "Value3")
)
$customTable = $multiArray | ForEach-Object {
[PSCustomObject]@{
Item = $_[0]
Description = $_[1]
Value = $_[2]
}
}
$customTable | Format-TableProducción :
Item Description Value
---- ----------- -----
Item1 Description1 Value1
Item2 Description2 Value2
Item3 Description3 Value3Conclusión
Si bien Write-Host se puede utilizar para mostrar elementos de matriz en PowerShell, no es la mejor herramienta para presentar datos en formato de tabla. PowerShell proporciona otros cmdlets como Format-Table y la capacidad de crear objetos personalizados que ofrecen mucha más flexibilidad y potencia para mostrar matrices como tablas.
En este tutorial de PowerShell, he explicado cómo formatear una matriz como tabla en PowerShell y PowerShell Write-Host Array como una tabla con ejemplos.

