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-Object
y 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 que0
- Alineación: el valor puede ser
Left
,Center
oRight
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
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.