Compartir a través de


Format-Table

Da formato a la salida como una tabla.

Sintaxis

Format-Table
      [[-Property] <Object[]>]
      [-AutoSize]
      [-HideTableHeaders]
      [-Wrap]
      [-GroupBy <Object>][-View <string>]
      [-ShowError]
      [-DisplayError]
      [-Force]
      [-Expand <string>]
      [-InputObject <psobject>][<CommonParameters>]

Description

El cmdlet Format-Table da formato a la salida de un comando como una tabla con las propiedades seleccionadas del objeto en cada columna. El tipo de objeto determina el diseño predeterminado y las propiedades que se muestran en cada columna, pero puede usar el parámetro Property para seleccionar las propiedades que desea ver.

También puede usar una tabla hash para agregar propiedades calculadas a un objeto antes de mostrarla y especificar los encabezados de columna en la tabla. Para agregar una propiedad calculada, use el parámetro Property o Group By.

Ejemplos

Ejemplo 1: Formato del host de PowerShell

Este comando muestra información sobre el programa host para PowerShell en una tabla. De forma predeterminada, tienen formato en una lista.

Get-Host | Format-Table -AutoSize

El cmdlet Get-Host obtiene objetos que representan el host. El operador de canalización (|) pasa el objeto al cmdlet Format-Table. El cmdlet Format-Table da formato a los objetos de una tabla. El parámetro AutoSize ajusta los anchos de columna para minimizar el truncamiento.

Ejemplo 2: Dar formato a procesos por BasePriority

Este comando muestra los procesos del equipo en grupos con la misma prioridad base.

Get-Process | Sort-Object -Property basepriority | Format-Table -GroupBy basepriority -Wrap

El cmdlet Get-Process obtiene objetos que representan cada proceso del equipo. El operador de canalización (|) pasa el objeto al cmdlet Sort-Object, que ordena los objetos en orden de su prioridad base.

Otro operador de canalización pasa los resultados al cmdlet Format-Table. El parámetro GroupBy organiza los datos sobre los procesos en grupos en función del valor de su propiedad BasePriority. El parámetro Wrap garantiza que los datos no se truncan.

Ejemplo 3: Dar formato a los procesos por fecha de inicio

Get-Process | Sort-Object starttime | Format-Table -View starttime

Este comando muestra información sobre los procesos del equipo en grupo en función de la fecha de inicio del proceso. Usa el cmdlet Get-Process para obtener objetos que representan los procesos del equipo. El operador de canalización (|) envía la salida de Get-Process al cmdlet Sort-Object, que lo ordena en función de la propiedad StartTime. Otro operador de canalización envía los resultados ordenados a Format-Table.

El parámetro View se usa para seleccionar la vista startTime de definida en el archivo de para objetos System.Diagnostics.Process, como los devueltos por . Esta vista convierte el StartTime del proceso en una fecha corta y, a continuación, agrupa los procesos por fecha de inicio.

El archivo DotNetTypes.format.ps1xml también contiene una vista de prioridad para los procesos. Puede crear sus propios archivos format.ps1xml con vistas personalizadas.

Ejemplo 4: Dar formato a los servicios

Get-Service | Format-Table -Property Name, DependentServices

Este comando muestra todos los servicios del equipo de una tabla con dos columnas, Nombre y DependentServices. El cmdlet Get-Service obtiene todos los servicios del equipo. El operador de canalización (|) envía los resultados al cmdlet Format-Table, que da formato a la salida en una tabla. El parámetro Property especifica las propiedades que aparecen en la tabla como columnas. El nombre del parámetro Property es opcional, por lo que puede omitirlo, por ejemplo, Format-Table Name, DependentServices.

Name y DependentServices son solo dos de las propiedades de los objetos de servicio. Para ver todas las propiedades, escriba Get-Service | Get-Member -MemberType Properties.

Ejemplo 5: Dar formato a un proceso y calcular su tiempo de ejecución

Este comando muestra cómo usar una propiedad calculada en una tabla.

Get-Process Notepad | Format-Table ProcessName,
   @{Label="TotalRunningTime"; Expression={(Get-Date) - $_.StartTime}}

El comando muestra una tabla con el nombre del proceso y el tiempo de ejecución total de todos los procesos del Bloc de notas en el equipo local. El tiempo de ejecución total se calcula restando la hora de inicio de cada proceso de la hora actual.

El comando usa el cmdlet Get-Process para obtener todos los procesos denominados Bloc de notas en el equipo local. El operador de canalización (|) envía los resultados a Format-Table, que muestra una tabla con dos columnas: ProcessName, una propiedad estándar de procesos y TotalRunningTime, una propiedad calculada.

La propiedad TotalRunningTime se especifica mediante una tabla hash con dos claves, Etiqueta y Expresión. El nombre de la propiedad se asigna a la clave Etiqueta. El cálculo se asigna a la clave Expresión. La expresión obtiene la propiedad StartTime de cada objeto de proceso y la resta del resultado de un comando Get-Date, que obtiene la fecha y hora actuales.

Ejemplo 6: Formato de procesos del Bloc de notas

Estos comandos son similares al comando anterior, salvo que estos comandos usan el cmdlet Get-WmiObject.

$Processes = Get-WmiObject -ComputerName "Server01" -Class win32_process -Filter "name='notepad.exe'"
$Processes | Format-Table ProcessName, @{ Label = "Total Running Time"; Expression={(Get-Date) - $_.ConvertToDateTime($_.CreationDate)}}

El primer comando usa el cmdlet Get-WmiObject para obtener instancias de la clase Win32_Process WMI que describe todos los procesos del equipo Server01 denominados Notepad.exe. El comando almacena la información del proceso en la variable $Processes.

El segundo comando usa un operador de canalización (|) para enviar la información del proceso en la variable $Processes al cmdlet Format-Table, que muestra el ProcessName y una nueva propiedad calculada.

El comando asigna el nombre de la nueva propiedad calculada, "Tiempo total de ejecución", a la etiqueta clave. El bloque de script que se asigna a la expresión clave calcula cuánto tiempo se ha ejecutado el proceso restando la fecha de creación del proceso a partir de la fecha actual. El cmdlet Get-Date obtiene la fecha actual. El método ConvertToDateTime de convierte la propiedad CreationDate del objeto Win32_Process de un objeto WMI CIM_DATETIME a un objeto DateTime de .NET que se puede comparar con la salida de . A continuación, la fecha de creación convertida se resta de la fecha actual. El resultado es el valor de tiempo de ejecución total.

Ejemplo 7: Solución de errores de formato

En los ejemplos siguientes se muestran los resultados de agregar los parámetros DisplayError o ShowError con una expresión.

PC /> Get-Date | Format-Table DayOfWeek,{ $_ / $null } -DisplayError

DayOfWeek  $_ / $null
--------- ------------
Wednesday #ERR

PC /> Get-Date | Format-Table DayOfWeek,{ $_ / $null } -ShowError

DayOfWeek  $_ / $null
--------- ------------
Wednesday

Failed to evaluate expression " $_ / $null ".
    + CategoryInfo          : InvalidArgument: (10/30/2013 2:28:07 PM:PSObject) \[\], RuntimeException
    + FullyQualifiedErrorId : mshExpressionError

Parámetros

-AutoSize

Indica que el cmdlet ajusta el tamaño de columna y el número de columnas en función del ancho de los datos. De forma predeterminada, la vista determina el tamaño y el número de columna.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-DisplayError

Indica que el cmdlet muestra errores en la línea de comandos. Este parámetro rara vez se usa, pero se puede usar como ayuda de depuración cuando se dan formato a expresiones en un comando Format-Table y las expresiones no parecen funcionar.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Expand

Especifica el formato del objeto de colección, así como los objetos de la colección. Este parámetro está diseñado para dar formato a los objetos que admiten la interfaz ICollection (System.Collections). El valor predeterminado es EnumOnly. Los valores aceptables para este parámetro son:

  • EnumOnly: muestra las propiedades de los objetos de la colección.
  • CoreOnly: muestra las propiedades del objeto de colección.
  • Ambos: muestra las propiedades del objeto de colección y las propiedades de los objetos de la colección.
Tipo:String
Valores aceptados:CoreOnly, EnumOnly, Both
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Force

Indica que el cmdlet dirige el cmdlet para mostrar toda la información de error. Use con el displayError o parámetro ShowError. De forma predeterminada, cuando se escribe un objeto de error en las secuencias de error o de visualización, solo se muestra parte de la información de error.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-GroupBy

Especifica la salida ordenada en tablas independientes basadas en un valor de propiedad. Por ejemplo, puede usar GroupBy para enumerar servicios en tablas independientes en función de su estado.

Escriba una expresión o una propiedad de la salida. La salida debe ordenarse antes de enviarlo a Format-Table.

El valor del parámetro GroupBy puede ser una nueva propiedad calculada. Para crear una propiedad calculada, use una tabla hash. Las claves válidas son:

  • Nombre (o etiqueta) <cadena>
  • Expresión <cadena> o <bloque de script>
  • > de cadena formatString <
Tipo:Object
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-HideTableHeaders

Omite los encabezados de columna de la tabla.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-InputObject

Especifica los objetos a los que se va a dar formato. Escriba una variable que contenga los objetos, o escriba un comando o expresión que obtenga los objetos.

Tipo:PSObject
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-Property

Especifica las propiedades del objeto que aparecen en la pantalla y el orden en que aparecen. Escriba uno o varios nombres de propiedad (separados por comas) o use una tabla hash para mostrar una propiedad calculada. Se permiten caracteres comodín.

Si omite este parámetro, las propiedades que aparecen en la pantalla dependen de las propiedades del primer objeto. Por ejemplo, si el primer objeto tiene PropertyA y PropertyB, pero los objetos posteriores tienen PropertyA, PropertyB y PropertyC solo se mostrarán los encabezados PropertyA y PropertyB.

El nombre del parámetro Property es opcional. No se pueden usar los parámetros Property Property y View en el mismo comando.

El valor del parámetro Property puede ser una nueva propiedad calculada. Para crear una propiedad calculada, use una tabla hash. Las claves válidas son:

  • Nombre (o etiqueta) <cadena>
  • Expresión <cadena> o <bloque de script>
  • > de cadena formatString <
  • Ancho <> int32
  • Alineación (el valor puede ser "Left", "Center" o "Right")
Tipo:Object[]
Posición:0
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:True

-ShowError

Envía errores a través de la canalización. Este parámetro rara vez se usa, pero se puede usar como ayuda de depuración cuando se dan formato a expresiones en un comando Format-Table y las expresiones no parecen funcionar.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-View

Especifica el nombre de un formato o vista de tabla alternativo. No se pueden usar los parámetros Property Property y View en el mismo comando.

Tipo:String
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Wrap

Muestra el texto que supera el ancho de columna en la línea siguiente. De forma predeterminada, el texto que supera el ancho de columna se trunca.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

Entradas

PSObject

Puede canalizar cualquier objeto a Format-Table.

Salidas

Microsoft.PowerShell.Commands.Internal.Format

Format-Table devuelve objetos de formato que representan la tabla.

Notas

El parámetro GroupBy supone que los objetos están ordenados. Use el cmdlet Sort-Object antes de usar Format-Table para agrupar los objetos.

El parámetro View permite especificar un formato alternativo para la tabla. Puede usar las vistas definidas en los archivos de *.format.PS1XML en el directorio de PowerShell o puede crear sus propias vistas en los nuevos archivos PS1XML y, a continuación, usar el cmdlet Update-FormatData para incluirlos en PowerShell. Las vistas alternativas para el parámetro View deben usar el formato de tabla; de lo contrario, se produce un error en el comando. Si la vista alternativa es una lista, use el cmdlet Format-List. Si la vista alternativa no es una lista o una tabla, use el cmdlet Format-Custom.