Format-Table
Formata a saída como uma tabela.
Sintaxe
All
Format-Table
[[-Property] <Object[]>]
[-AutoSize]
[-RepeatHeader]
[-HideTableHeaders]
[-Wrap]
[-GroupBy <Object>]
[-View <string>]
[-ShowError]
[-DisplayError]
[-Force]
[-Expand <string>]
[-InputObject <psobject>]
[<CommonParameters>]
Description
O cmdlet Format-Table formata a saída de um comando como uma tabela com as propriedades selecionadas do objeto em cada coluna. O tipo de objeto determina o layout padrão e as propriedades que são exibidas em cada coluna. Você pode usar o parâmetro Propriedade para selecionar as propriedades que deseja exibir.
O PowerShell usa formatadores padrão para definir como os tipos de objeto são exibidos. Você pode usar .ps1xml arquivos para criar exibições personalizadas que exibem uma tabela de saída com propriedades especificadas. Depois que uma exibição personalizada for criada, use o parâmetro Exibir para exibir a tabela com sua exibição personalizada. Para obter mais informações sobre exibições, consulte about_Format.ps1xml.
Você pode usar uma tabela de hash para adicionar propriedades calculadas a um objeto antes de exibi-la e especificar os títulos de coluna na tabela. Para adicionar uma propriedade calculada, use o parâmetro Property ou GroupBy. Para obter informações sobre tabelas de hash, confira about_Hash_Tables.
Exemplos
Exemplo 1: formatar host do PowerShell
Este exemplo exibe informações sobre o programa host do PowerShell em uma tabela.
Get-Host | Format-Table -AutoSize
O Get-Host cmdlet obtém objetos System.Management.Automation.Internal.Host.InternalHost que representam o host. Os objetos são enviados pelo pipeline e Format-Table exibidos em uma tabela. O parâmetro AutoSize ajusta as larguras da coluna para minimizar o truncamento.
Exemplo 2: formatar processos por BasePriority
Neste exemplo, os processos são exibidos em grupos que têm a mesma propriedade BasePriority .
Get-Process | Sort-Object -Property BasePriority |
Format-Table -GroupBy BasePriority -Wrap
O Get-Process cmdlet obtém objetos que representam cada processo no computador e os envia pelo pipeline para Sort-Object. Os objetos são classificados na ordem de sua propriedade BasePriority .
Os objetos classificados são enviados pelo pipeline para Format-Table. O parâmetro GroupBy organiza os dados do processo em grupos com base no valor da propriedade BasePriority . O parâmetro Wrap garante que os dados não sejam truncados.
Exemplo 3: formatar processos por data de início
Este exemplo exibe informações sobre os processos em execução no computador. Os objetos são classificados e Format-Table usam uma exibição para agrupar os objetos pela data de início.
Get-Process | Sort-Object StartTime | Format-Table -View StartTime
Get-Process obtém os objetos System.Diagnostics.Process que representam os processos em execução no computador. Os objetos são enviados pelo pipeline e Sort-Objectclassificados com base na propriedade StartTime .
Os objetos classificados são enviados pelo pipeline para Format-Table. O parâmetro View especifica o modo de exibição StartTime definido no arquivo do PowerShell DotNetTypes.format.ps1xml para objetos System.Diagnostics.Process . O modo de exibição StartTime converte cada hora de início dos processos em uma data curta e, em seguida, agrupa os processos pela data de início.
O DotNetTypes.format.ps1xml arquivo contém uma exibição De prioridade para processos. Você pode criar seus próprios format.ps1xml arquivos com exibições personalizadas.
Exemplo 4: Usar uma exibição personalizada para a saída da tabela
Neste exemplo, uma exibição personalizada exibe o conteúdo de um diretório. A exibição personalizada adiciona a coluna CreationTime à saída da tabela para objetos System.IO.DirectoryInfo e System.IO.FileInfo criados por Get-ChildItem.
A exibição personalizada neste exemplo foi criada a partir da exibição definida no código-fonte do PowerShell. Para obter mais informações sobre exibições e o código usado para criar a exibição deste exemplo, consulte 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-ChildItemobtém o conteúdo do diretório atual. C:\Test Os objetos System.IO.DirectoryInfo e System.IO.FileInfo são enviados pelo pipeline.
Format-Table usa o parâmetro View para especificar a exibição personalizada MyGciView que inclui a coluna CreationTime .
A saída Get-ChildItem padrão Format-Table não inclui a coluna CreationTime.
Exemplo 5: Usar propriedades para saída de tabela
Este exemplo usa o parâmetro Propriedade para exibir todos os serviços do computador em uma tabela de duas colunas que mostra as propriedades Name e DependentServices.
Get-Service | Format-Table -Property Name, DependentServices
Get-Service obtém todos os serviços no computador e envia os objetos System.ServiceProcess.ServiceController pelo pipeline.
Format-Table usa o parâmetro Property para especificar que as propriedades Name e DependentServices são exibidas na tabela.
Name e DependentServices são duas das propriedades do tipo de objeto. Para exibir todas as propriedades: Get-Service | Get-Member -MemberType Properties
Exemplo 6: formatar um processo e calcular seu tempo de execução
Este exemplo exibe uma tabela com o nome do processo e o tempo total de execução para os processos do bloco de notas do computador local. O tempo de execução total é calculado subtraindo a hora de início de cada processo da hora atual.
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 obtém todos os processos do bloco de notas do computador local e envia os objetos pelo pipeline.
Format-Table exibe uma tabela com duas colunas: ProcessName, uma Get-Process propriedade e TotalRunningTime, uma propriedade calculada.
A propriedade Get-Date, que obtém a data e a hora atuais.
Exemplo 7: formatar processos do bloco de notas
Este exemplo usa Get-CimInstance para obter o tempo de execução para todos os processos do bloco de notas no computador local. Você pode usar Get-CimInstance com o parâmetro ComputerName para obter informações de computadores 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 obtém instâncias da classe Win32_Process WMI que descreve todos os processos do computador local chamadosnotepad.exe. Os objetos de processo são armazenados na $Processes variável.
Os objetos de processo na $Processes variável são enviados pelo pipeline para Format-Table, que exibe a propriedade ProcessName e uma nova propriedade calculada, Tempo Total de Execução.
O comando atribui o nome da nova propriedade calculada, Tempo Total de Execução, à chave Rótulo . O bloco de script da chave de expressão calcula por quanto tempo o processo foi executado subtraindo a data de criação dos processos a partir da data atual. O cmdlet Get-Date obtém a data atual. A data de criação é subtraída da data atual. O resultado é o valor de tempo de execução total.
Exemplo 8: Solução de problemas de erros de formato
Os exemplos a seguir mostram os resultados da adição dos parâmetros DisplayError ou ShowError com uma expressão.
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 o cmdlet ajusta o tamanho da coluna e o número de colunas com base na largura dos dados. Por padrão, o tamanho e o número da coluna são determinados pela exibição.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | False |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-DisplayError
Indica que o cmdlet exibe erros na linha de comando. Esse parâmetro pode ser usado como um auxílio de depuração quando você está formatando expressões em um Format-Table comando e precisa solucionar problemas das expressões.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | False |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-Expand
Especifica o formato do objeto de coleção e os objetos na coleção. Esse parâmetro foi projetado para formatar objetos que dão suporte à interface ICollection(System.Collections). O valor padrão é EnumOnly. Os valores aceitáveis para esse parâmetro são os seguintes:
- EnumOnly: exibe as propriedades dos objetos na coleção.
- CoreOnly: exibe as propriedades do objeto da coleção.
- Ambos: exibe as propriedades do objeto de coleção e as propriedades dos objetos na coleção.
Propriedades do parâmetro
| Tipo: | String |
| Valor padrão: | None |
| Valores aceitos: | CoreOnly, EnumOnly, Both |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-Force
Indica que o cmdlet direciona o cmdlet para exibir todas as informações de erro. Use com o parâmetro DisplayError ou ShowError. Por padrão, quando um objeto de erro é gravado nos fluxos de erro ou de exibição, apenas algumas informações do erro são exibidas.
Também é necessário ao formatar determinados tipos de .NET. Para obter mais informações, veja a seção Observações.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | False |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-GroupBy
Especifica a saída classificada em tabelas separadas com base em um valor de propriedade. Por exemplo, você pode usar GroupBy para listar serviços em tabelas separadas com base em seu status.
Insira uma expressão ou uma propriedade. O parâmetro GroupBy espera que os objetos sejam classificados.
Use o cmdlet Sort-Object antes de usar Format-Table para agrupar os objetos.
O valor do parâmetro GroupBy pode ser uma nova propriedade calculada. A propriedade calculada pode ser um bloco de script ou uma tabela de hash. Pares chave-valor válidos são:
- Nome (ou rótulo) -
<string> - Expressão –
<string>ou<script block> - FormatString –
<string>
Para obter mais informações, consulte about_Calculated_Properties.
Propriedades do parâmetro
| Tipo: | Object |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-HideTableHeaders
Omite os títulos de coluna da tabela.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | False |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-InputObject
Especifica os objetos a serem formatados. Insira uma variável que contenha os objetos ou digite um comando ou expressão que obtém os objetos.
Propriedades do parâmetro
| Tipo: | PSObject |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | True |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-Property
Especifica as propriedades do objeto que aparecem na exibição e a ordem em que elas aparecem. Digite um ou mais nomes de propriedade, separados por vírgulas ou use uma tabela de hash para exibir uma propriedade calculada. Caracteres curinga são permitidos.
Se você omitir esse parâmetro, as propriedades que aparecem na exibição dependerão das propriedades do primeiro objeto. Por exemplo, se o primeiro objeto tiver PropertyA e PropertyB , mas os objetos subsequentes tiverem PropertyA, PropertyB e PropertyC, somente os cabeçalhos PropertyA e PropertyB serão exibidos.
O parâmetro Property é opcional. Você não pode usar os parâmetros Propriedade e Exibição no mesmo comando.
O valor do parâmetro da Propriedade
- Nome (ou rótulo)
<string> - Expressão –
<string>ou<script block> - FormatString –
<string> - Largura -
<int32>- deve ser maior que0 - Alinhamento – o valor pode ser
Left,CenterouRight
Para obter mais informações, consulte about_Calculated_Properties.
Propriedades do parâmetro
| Tipo: | Object[] |
| Valor padrão: | None |
| Dá suporte a curingas: | True |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | 0 |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-RepeatHeader
Repete a exibição do cabeçalho de uma tabela após cada tela cheia. O cabeçalho repetido é útil quando a saída é canalizada para um pager como less ou more paginação com um leitor de tela.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | False |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-ShowError
Esse parâmetro envia erros por meio do pipeline. Esse parâmetro pode ser usado como um auxílio de depuração quando você está formatando expressões em um Format-Table comando e precisa solucionar problemas das expressões.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | False |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-View
A partir do PowerShell 6, as exibições padrão são definidas no código-fonte do PowerShell C# . Os arquivos *.format.ps1xml do PowerShell 5.1 e versões anteriores não existem no PowerShell 6 e versões posteriores.
O parâmetro View permite que você especifique um formato alternativo ou uma exibição personalizada para a tabela. Você pode usar as exibições padrão do PowerShell ou criar exibições personalizadas. Para obter mais informações sobre como criar uma exibição personalizada, consulte about_Format.ps1xml.
As exibições alternativas e personalizadas do parâmetro View devem usar o formato de tabela, caso contrário, Format-Table falhará. Se a exibição alternativa for uma lista, use o cmdlet Format-List. Se a exibição alternativa não for uma lista ou uma tabela, use o Format-Custom cmdlet.
Você não pode usar os parâmetros Propriedade e Exibição no mesmo comando.
Propriedades do parâmetro
| Tipo: | String |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-Wrap
Exibe o texto que excede a largura da coluna na próxima linha. Por padrão, o texto que excede a largura da coluna é truncado.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | False |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
CommonParameters
Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.
Entradas
PSObject
Você pode redirecionar qualquer objeto para este cmdlet.
Saídas
Microsoft.PowerShell.Commands.Internal.Format
Esse cmdlet retorna objetos de formato que representam a tabela.
Observações
O PowerShell inclui os seguintes aliases para Format-Table:
- Todas as plataformas:
ft
O PowerShell 7.2 introduziu novos recursos para colorir a saída. As cores podem ser gerenciadas usando a $PSStyle variável automática. A $PSStyle.Formatting.TableHeader propriedade define a cor usada para o cabeçalho da tabela exibida por Format-Table. Para obter mais informações sobre essa configuração, consulte about_ANSI_Terminals.
Se você quiser usar Format-Table com o parâmetro Propriedade, será necessário incluir o parâmetro Forçar sob qualquer uma das seguintes condições:
Normalmente, os objetos de entrada são formatados fora de banda usando o
ToString()método. Isso se aplica aos[string]tipos primitivos do .NET, que são um superconjunto dos tipos numéricos internos, como[int],[long]e outros.Os objetos de entrada não têm propriedades públicas.
Os objetos de entrada são instâncias dos tipos de wrapper que o PowerShell usa para fluxos de saída diferentes do fluxo de saída Success. Isso se aplica somente quando esses tipos de wrapper são enviados para o fluxo de saída success que exige que eles sejam capturados por meio de parâmetros comuns, como ErrorVariable primeiro ou usando um redirecionamento como
*>&1.