Compartir a través de


Format-Table

Aplica al resultado un formato de tabla.

Sintaxis

Format-Table
      [[-Property] <Object[]>]
      [-AutoSize]
      [-RepeatHeader]
      [-HideTableHeaders]
      [-Wrap]
      [-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 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, consulte about_Format.ps1xml.

Puede usar una tabla hash para agregar propiedades calculadas a un objeto antes de mostrarla y especificar los encabezados de columna de 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: Formato del 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 Sort-Object. Los objetos se ordenan en el orden de su propiedad BasePriority .

Los objetos ordenados se envían a 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 los 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 en función de la propiedad StartTime .

Los objetos ordenados se envían a 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 para 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-Processobtiene 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-CimInstanceobtiene instancias de la clase Win32_Process WMI que describe todos los procesos del equipo local denominados notepad.exe. Los objetos de proceso se almacenan en la $Processes variable .

Los objetos de proceso de la $Processes variable se envían a 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 a partir 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 total de ejecución.

Ejemplo 8: 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.

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

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

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

DayOfWeek  $_ / $null
--------- ------------
Wednesday
Failed to evaluate expression " $_ / $null ".
    + CategoryInfo          : InvalidArgument: (11/27/2019 12:53:41: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, el tamaño y el número de las columnas dependen de la vista.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:False
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 se puede usar como ayuda de depuración cuando aplica formato a expresiones en un Format-Table comando y necesita solucionar problemas de las expresiones.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:False
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín: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 los 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.
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 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 visualización, solo se muestra información de error.

También es necesario cuando se aplica formato a determinados tipos de .NET. Para más información, vea la sección Notas.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:False
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 los servicios en tablas independientes en función de su estado.

Escriba una expresión o una propiedad. El parámetro GroupBy espera que los objetos estén ordenados. Use el cmdlet antes de Sort-Object 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.

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:False
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. Especifique una variable que contenga los objetos o escriba un comando o una 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 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 posteriores tienen PropertyA, PropertyB y PropertyC, solo se muestran los encabezados PropertyA y PropertyB .

El parámetro Property es opcional. No puede 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>
  • Ancho: <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.

Tipo:Object[]
Posición:0
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín: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.

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

-ShowError

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

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

-View

En PowerShell 5.1 y versiones anteriores, las vistas predeterminadas se definen en *.format.ps1xml archivos almacenados en $PSHOME.

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, consulte about_Format.ps1xml.

Las vistas alternativas y personalizadas para el parámetro View deben usar el formato de tabla; de lo contrario, se produce un Format-Table 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 puede usar los parámetros 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:False
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

Entradas

PSObject

Puede canalizar cualquier objeto a este cmdlet.

Salidas

Microsoft.PowerShell.Commands.Internal.Format

Este cmdlet devuelve objetos de formato que representan la tabla.

Notas

Windows PowerShell incluye los siguientes alias para Format-Table:

  • ft

Si desea usar Format-Table con el parámetro Property , debe incluir el parámetro Force en cualquiera de las condiciones siguientes: