Format-Table

Aplica al resultado un formato de tabla.

Syntax

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

Description

El Format-Table cmdlet 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. Puede usar el parámetro Property para seleccionar las propiedades que desea mostrar.

PowerShell usa formateadores predeterminados para definir cómo se muestran los tipos de objeto. Puede usar .ps1xml archivos para crear vistas personalizadas que muestren una tabla de salida con las propiedades especificadas. Una vez creada una vista personalizada, use el parámetro View para mostrar la tabla con la vista personalizada. Para obtener más información sobre las vistas, vea about_Format.ps1xml.

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 GroupBy . Para obtener más información sobre las tablas hash, consulte about_Hash_Tables.

Ejemplos

Ejemplo 1: Dar formato al host de PowerShell

En este ejemplo se muestra información sobre el programa host para PowerShell en una tabla.

Get-Host | Format-Table -AutoSize

El Get-Host cmdlet obtiene objetos System.Management.Automation.Internal.Host.InternalHost que representan el host. Los objetos se envían a la canalización y Format-Table se muestran en una tabla. El parámetro AutoSize ajusta los anchos de columna para minimizar el truncamiento.

Ejemplo 2: Dar formato a procesos por BasePriority

En este ejemplo, los procesos se muestran en grupos que tienen la misma propiedad BasePriority .

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

El Get-Process cmdlet obtiene objetos que representan cada proceso del equipo y los envía a la canalización a Sort-Object. Los objetos se ordenan en el orden de su propiedad BasePriority .

Los objetos ordenados se envían por la canalización a Format-Table. El parámetro GroupBy organiza los datos de proceso 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 procesos por fecha de inicio

En este ejemplo se muestra información sobre los procesos que se ejecutan en el equipo. Los objetos se ordenan y Format-Table usan una vista para agrupar los objetos por su fecha de inicio.

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

Get-Process obtiene los objetos System.Diagnostics.Process que representan los procesos que se ejecutan en el equipo. Los objetos se envían a la canalización a Sort-Objecty se ordenan según la propiedad StartTime .

Los objetos ordenados se envían por la canalización a Format-Table. El parámetro View especifica la vista StartTime definida en el archivo de PowerShell DotNetTypes.format.ps1xml para objetos System.Diagnostics.Process . La vista StartTime convierte cada hora de inicio de procesos en una fecha corta y, a continuación, agrupa los procesos por la fecha de inicio.

El DotNetTypes.format.ps1xml archivo contiene una vista Prioridad para los procesos. Puede crear sus propios format.ps1xml archivos con vistas personalizadas.

Ejemplo 4: Uso de una vista personalizada para la salida de tabla

En este ejemplo, una vista personalizada muestra el contenido de un directorio. La vista personalizada agrega la columna CreationTime a la salida de la tabla de los objetos System.IO.DirectoryInfo y System.IO.FileInfo creados por Get-ChildItem.

La vista personalizada de este ejemplo se creó a partir de la vista definida en el código fuente de PowerShell. Para obtener más información sobre las vistas y el código usado para crear la vista de este ejemplo, vea about_Format.ps1xml.

Get-ChildItem  -Path C:\Test | Format-Table -View mygciview

Directory: C:\Test

Mode                LastWriteTime              CreationTime         Length Name
----                -------------              ------------         ------ ----
d-----        11/4/2019     15:54       9/24/2019     15:54                Archives
d-----        8/27/2019     14:22       8/27/2019     14:22                Drawings
d-----       10/23/2019     09:38       2/25/2019     09:38                Files
-a----        11/7/2019     11:07       11/7/2019     11:07          11345 Alias.txt
-a----        2/27/2019     15:15       2/27/2019     15:15            258 alias_out.txt
-a----        2/27/2019     15:16       2/27/2019     15:16            258 alias_out2.txt

Get-ChildItem obtiene el contenido del directorio actual, C:\Test. Los objetos System.IO.DirectoryInfo y System.IO.FileInfo se envían por la canalización. Format-Table usa el parámetro View para especificar la vista personalizada mygciview que incluye la columna CreationTime .

La salida predeterminada Format-Table de Get-ChildItem no incluye la columna CreationTime .

Ejemplo 5: Uso de propiedades para la salida de tabla

En este ejemplo se usa el parámetro Property para mostrar todos los servicios del equipo en una tabla de dos columnas que muestra las propiedades Name y DependentServices.

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

Get-Service obtiene todos los servicios del equipo y envía los objetos System.ServiceProcess.ServiceController a la canalización. Format-Table usa el parámetro Property para especificar que las propiedades Name y DependentServices se muestran en la tabla.

Name y DependentServices son dos de las propiedades del tipo de objeto. Para ver todas las propiedades: Get-Service | Get-Member -MemberType Properties.

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

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

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

ProcessName TotalRunningTime
----------- ----------------
notepad     03:20:00.2751767
notepad     00:00:16.7710520

Get-Process obtiene todos los procesos del Bloc de notas del equipo local y envía los objetos a la canalización. Format-Table muestra una tabla con dos columnas: ProcessName, una Get-Process propiedad y TotalRunningTime, una propiedad calculada.

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

Ejemplo 7: Formato de procesos del Bloc de notas

En este ejemplo se usa Get-CimInstance para obtener el tiempo de ejecución de todos los procesos del Bloc de notas en el equipo local. Puede usar Get-CimInstance con el parámetro ComputerName para obtener información de equipos remotos.

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

ProcessName Total Running Time
----------- ------------------
notepad.exe 03:39:39.6260693
notepad.exe 00:19:56.1376922

Get-CimInstance obtiene instancias de la clase Win32_Process WMI que describe todos los procesos del equipo local denominadosnotepad.exe. Los objetos de proceso se almacenan en la $Processes variable .

Los objetos de proceso de la $Processes variable se envían por la canalización a Format-Table, que muestra la propiedad ProcessName y una nueva propiedad calculada, Tiempo total de ejecución.

El comando asigna el nombre de la nueva propiedad calculada, Tiempo total de ejecución, a la clave Etiqueta . El bloque de script de la clave de expresión calcula cuánto tiempo se ha ejecutado el proceso restando la fecha de creación de los procesos de la fecha actual. El Get-Date cmdlet obtiene la fecha actual. La fecha de creación se resta de la fecha actual. El resultado es el valor de Tiempo de ejecución total.

Ejemplo 8: Solución de problemas de errores de formato

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

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

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

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

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

InvalidArgument: Failed to evaluate expression " $_ / $null ".

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, el tamaño y el número de las columnas dependen de la vista.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DisplayError

Indica que el cmdlet muestra errores en la línea de comandos. Este parámetro se puede usar como ayuda para la depuración cuando se da formato a expresiones en un Format-Table comando y es necesario solucionar problemas de las expresiones.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Expand

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

  • 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.
Type:String
Accepted values:CoreOnly, EnumOnly, Both
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

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

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-GroupBy

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

Escriba una expresión o una propiedad. El parámetro GroupBy espera que los objetos se ordenan. Use el Sort-Object cmdlet antes de usar Format-Table para agrupar los objetos.

El valor del parámetro GroupBy puede ser una nueva propiedad calculada. La propiedad calculada puede ser un bloque de script o una tabla hash. Los pares clave-valor válidos son:

  • Nombre (o etiqueta): <string>
  • Expresión: <string> o <script block>
  • FormatString: <string>

Para obtener más información, consulte about_Calculated_Properties.

Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HideTableHeaders

Omite los encabezados de columna de la tabla.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

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

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Property

Especifica las propiedades del objeto que aparecen en 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 los 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 subsiguientes tienen PropertyA, PropertyB y PropertyC, solo se mostrarán los encabezados PropertyA y PropertyB .

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

El valor del parámetro Property puede ser una nueva propiedad calculada. La propiedad calculada puede ser un bloque de script o una tabla hash. Los pares clave-valor válidos son:

  • Nombre (o etiqueta) <string>
  • Expresión: <string> o <script block>
  • FormatString: <string>
  • Width : <int32> debe ser mayor que 0
  • Alineación: el valor puede ser Left, Centero Right

Para obtener más información, consulte about_Calculated_Properties.

Type:Object[]
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-RepeatHeader

Repite la visualización del encabezado de una tabla después de cada pantalla completa. El encabezado repetido es útil cuando la salida se canaliza a un buscapersonas como less o more paginación con un lector de pantalla.

Este parámetro se agregó en PowerShell 6.2.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ShowError

Este parámetro envía errores a través de la canalización. Este parámetro se puede usar como ayuda para la depuración cuando se da formato a expresiones en un Format-Table comando y es necesario solucionar problemas de las expresiones.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-View

A partir de PowerShell 6, las vistas predeterminadas se definen en el código fuente de PowerShell C# . Los *.format.ps1xml archivos de PowerShell 5.1 y versiones anteriores no existen en PowerShell 6 ni en versiones posteriores.

El parámetro View permite especificar un formato alternativo o una vista personalizada para la tabla. Puede usar las vistas predeterminadas de PowerShell o crear vistas personalizadas. Para obtener más información sobre cómo crear una vista personalizada, vea about_Format.ps1xml.

Las vistas alternativas y personalizadas para el parámetro View deben usar el formato de tabla; de lo contrario, se Format-Table produce un error. Si la vista alternativa es una lista, use el Format-List cmdlet . Si la vista alternativa no es una lista o una tabla, use el Format-Custom cmdlet .

No se pueden usar los parámetros Property y View en el mismo comando.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entradas

PSObject

Puede enviar cualquier objeto de la canalización a Format-Table.

Salidas

Microsoft.PowerShell.Commands.Internal.Format

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