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-Object
y 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-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 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 que0
- Alineación: el valor puede ser
Left
,Center
oRight
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
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:
Normalmente, los objetos de entrada tienen el formato fuera de banda mediante el
ToString()
método . Esto se aplica a[string]
los tipos primitivos de .NET y , que son un superconjunto de los tipos numéricos integrados, como[int]
,[long]
y otros.Los objetos de entrada no tienen propiedades públicas.
Los objetos de entrada son instancias de los tipos de contenedor que PowerShell usa para flujos de salida distintos del flujo de salida Correcto. Esto solo se aplica cuando estos tipos de contenedor se envían al flujo de salida Correcto que requiere que se capturen a través de parámetros comunes como ErrorVariable primero o mediante un redireccionamiento como
*>&1
.