Powershell – 7 – Formateando la salida

En este articulo vamos a ver unos cmdlets que nos van a servir para formatear la salida de otros cmdlets.

Normalmente, siempre vamos a utilizar estos cmdlets para manejar el resultado de otro cmdlet. La verdad es que estos commandlets por si solos no tienes mucha utilidad.

7.1- Format-List (fl)

Este commandlet aplica a la salida el formato de una lista de propiedades en la que cada propiedad aparece en una linea diferente. Ya que cada elemento dispone de mas espacio en una lista que en una tabla, Powershell muestra mas propiedades del objeto en un lista y hay menos posibilidades de que se trunquen los valores de las propiedades.

Para conocer todas las propiedades del objeto, podemos utilizar el cmdlet:

> cmdlet | Format-List *

Parametros

-property <object[]>

Especifica las propiedades del objeto que se va a mostrar y el orden en el que van a aparecer. Se pueden utilizar caracteres comodin.

Este parametro es opcional pero si se omite, las propiedades que aparezcan dependeran del objeto que se esta mostrando.

Los parametros «-property» y «view» no se pueden utilizar en el mismo comando.

-view <String>

Especifica el nombre de una vista o un formato de lista alternativo.

Hay mas parametros disponibles para este cmdlet. Para obtener mas informacion sobre ellos:

>get-help -detailed format-list

Ejemplo1:

>get-childitem | format-list

Podemos ver como es el formato que genera «format-list«.

Para compararlo, ahora podemos ejecutar:

>get-childitem

Se nota la diferencia, ¿no?

Ejemplo2:

>get-childitem | format-list -property name, length

El resultado es un listado formateado en el que se muestran las propiedades name y length (el que las tenga) de los elementos pasados por el cmdlet get-chilitem.

Ejemplo 3:

>get-childitem | format-list -property name > c:\power\listadoformat-list.txt

En este caso utilizamos el simbolo «>» que ya vimos para redireccionar la salida a un fichero de texto.

En estos ejemplos utilizamos get-childitem. Este cmdlet tiene unas propiedades pero recordad que cada cmdlet tiene sus propiedades osea que si el commandlet que pasa la informacion es otro, tenemos que utilizar las propiedades de este cmdlet.

No os preocupeis por que vamos poco a poco. Mejor asi…

7.2- Format-wide (fw)

Aplica a los objetos el formato de una tabla ancha en la que se muestra unicamente una propiedad de cada objeto. Podemos utilizar el parametro «property» para determinar que propiedad se va a mostrar.

Parametros

-property <objetct[]>

Especifica las propiedades del objeto que se van a mostrar. Permite el uso de caracteres comodin. Es opcional. Los parametros «property» y «view» no pueden utilizarse en el mismo comando.

-autosize <SwitchParameter>

Ajusta el tamaño de columna y el numero de columnas en funcion del ancho de los datos. De forma predeterminada, el tamaño y el numero de columnas viene determinado por la vista. Los parametros «autosize» y «column» no pueden usarse en el mismo comando.

-column <int>

Especifica el numero de columnas de la presentacion.

-groupby <object>

Da formato a la salida de los grupos en funcion de un valor o de una propiedad compartida. Indicar una expresion o una propiedad de la salida.

-inputobject <psobject>

Especifica los objetos a los que se les va a dar formato. Tenemos que indicar la variable que contiene los objetos o escribir un comando u objeto que obtenga los objetos.

Para obtener mas informacion sobre estos y otros parametros del cmdlet «format-wide«, escribid el comando:

>get-help -detailed format-wide

Ejemplo 1:

>get-childitem

>get-childitem | format-wide

Vemos la diferencia a poco que nos fijemos…

Ejemplo 2:

>get-childitem | format-wide -column 3

En este caso le indicamos que la salida la formatee en 3 columnas. Se ve, ¿no?

Ejemplo 3:

>get-childitem -path c:\ -include «*.txt» -recurse | fw -property name -column 3

Este comando nos muestra en pantalla todos los ficheros del disco C con extension «txt«. La salida sera solo de los nombres de los ficheros y en 3 columnas.

Recordemos que fw es el alias de Format-Wide.

7.3- Format-Table (ft)

Aplica a la salida de un comando el formato de una tabla con las propiedades seleccionadas del objeto en cada columna.

Tambien se puede usar format-wide para agregar las propiedades calculadas a un objeto antes de mostrarlo. Para ello deberemos usar el parametro property para especificar una tabla hash. La tabla hash puede contener 2 claves: label y expression.

Parametros

-property <object[]>

Especifica las propiedades del objeto que se va a mostrar y el orden en el que van a aparecer. Se permite el uso de caracteres comodin.

-autosize <SwitchParameter>

Ajusta el tamaño de columna y el numero de columnas en funcion del ancho de los datos.

Otros parametros: hidetableheaders, groupby, wrap, view, force, inputobject, expand, displayerror, showerror.

Par obtener mas informacion sobre format-wide, escribiremos en la linea de comandos de Powershell: get-help -detailed format-table.

Ejemplo 1:

>get-childitem | format-table

En este caso podemos ver que la salida es la misma que si no hubiesemos utilizado format-wide.

Ejemplo 2:

>get-childitem -path c:\power -include «*.txt» -recurse | format-table -property name, length

Ahora si que vemos la diferencia ya que solo vemos las propiedades name y length.

Bueno, hasta aqui llega el articulo sobre el formateo de la salida en Windows Powershell. Disponemos de otro cmdlet relacionado con este tema: format-custom, pero de momento no lo vamos a comentar. Creo que con lo que hemos visto tenemos suficiente para practicar un poco con este asunto.

Venga, a pasarlo bien!!!

Otros articulos sobre Powershell:

Oscar Abad
http://www.xulak.com – Consultoría informática

Los comentarios están cerrados.