Format-Table

Formata a saída como uma tabela.

Syntax

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

Description

O Format-Table cmdlet 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 Property para selecionar as propriedades que deseja exibir.

O PowerShell usa formatters padrão para definir como os tipos de objeto são exibidos. Você pode usar .ps1xml arquivos para criar modos de exibição personalizados que exibem uma tabela de saída com propriedades especificadas. Depois que um modo de exibição personalizado for criado, use o parâmetro View para exibir a tabela com seu modo de exibição personalizado. Para obter mais informações sobre modos de exibição, consulte about_Format.ps1xml.

Você pode usar uma tabela de hash para adicionar propriedades calculadas a um objeto antes de exibi-lo e para 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 das colunas 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 usa um modo de exibição para agrupá-los por sua 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 para Sort-Objecto e são classificados 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 a hora de início de cada processo em uma data curta e, em seguida, agrupa os processos pela data de início.

O DotNetTypes.format.ps1xml arquivo contém um modo de exibição de prioridade para processos. Você pode criar seus próprios format.ps1xml arquivos com exibições personalizadas.

Exemplo 4: Usar um modo de exibição personalizado para saída de tabela

Neste exemplo, um modo de exibição personalizado exibe o conteúdo de um diretório. O modo de exibição personalizado adiciona a coluna CreationTime à saída da tabela para objetos System.IO.DirectoryInfo e System.IO.FileInfo criados pelo Get-ChildItem.

O modo de exibição personalizado neste exemplo foi criado a partir do modo de exibição definido no código-fonte do PowerShell. Para obter mais informações sobre modos de exibição e o código usado para criar o modo de 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-ChildItem obté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 o modo de exibição personalizado mygciview que inclui a coluna CreationTime .

A saída padrão Format-Table para Get-ChildItem não inclui a coluna CreationTime .

Exemplo 5: Usar propriedades para saída de tabela

Este exemplo usa o parâmetro Property 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 sejam 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 dos processos do bloco de notas do computador local. O tempo de execução total é calculado subtraindo-se 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-ProcessObté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 TotalRunningTime é especificada por uma tabela de hash com duas chaves, Label e Expression. A chave Label especifica o nome da propriedade. A chave Expression especifica o cálculo. A expressão obtém a propriedade StartTime de cada objeto de processo e a subtrai do resultado de um Get-Date comando, 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 de 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 WMI Win32_Process que descreve todos os processos do computador local chamados notepad.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, Total Running Time.

O comando atribui o nome da nova propriedade calculada, Total Running Time, à chave Label . O bloco de script da chave de expressão calcula quanto tempo o processo está em execução subtraindo a data de criação dos processos da data atual. O Get-Date cmdlet 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
Failed to evaluate expression " $_ / $null ".
    + CategoryInfo          : InvalidArgument: (11/27/2019 12:53:41:PSObject) [], RuntimeException
    + FullyQualifiedErrorId : mshExpressionError

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 número de colunas e seu tamanho são determinados pelo modo de exibição.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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ê estiver formatando expressões em um Format-Table comando e precisar solucionar problemas das expressões.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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 oferecem 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 de coleção.
  • Ambos: Exibe as propriedades do objeto da coleção e as propriedades dos objetos na coleção.
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 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, somente algumas informações de erro são exibidas.

Também necessário ao formatar determinados tipos .NET. Para obter mais informações, veja a seção Observações.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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 Sort-Object cmdlet 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. Os 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.

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

-HideTableHeaders

Omite os cabeçalhos de coluna da tabela.

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

-InputObject

Especifica os objetos a serem formatados. Insira uma variável que contém os objetos ou digite um comando ou uma expressão que obtém os objetos.

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

-Property

Especifica as propriedades do objeto que aparecem na exibição e a ordem em que 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. Não é possível usar os parâmetros Property e View no mesmo comando.

O valor do parâmetro Property pode ser uma nova propriedade calculada. A propriedade calculada pode ser um bloco de script ou uma tabela de hash. Os pares chave-valor válidos são:

  • Nome (ou Rótulo) <string>
  • Expressão - <string> ou <script block>
  • FormatString - <string>
  • Largura - <int32> - deve ser maior que 0
  • Alinhamento - o valor pode ser Left, Centerou Right

Para obter mais informações, consulte about_Calculated_Properties.

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

-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.

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

-ShowError

Esse parâmetro envia erros pelo pipeline. Esse parâmetro pode ser usado como um auxílio de depuração quando você estiver formatando expressões em um Format-Table comando e precisar solucionar problemas das expressões.

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

-View

No PowerShell 5.1 e em versões anteriores, os modos de exibição padrão são definidos em *.format.ps1xml arquivos armazenados no $PSHOME.

O parâmetro View permite especificar um formato alternativo ou um modo de exibição personalizado para a tabela. Você pode usar os modos de exibição padrão do PowerShell ou criar modos de exibição personalizados. Para obter mais informações sobre como criar um modo de exibição personalizado, consulte about_Format.ps1xml.

Os modos de exibição alternativos e personalizados para o parâmetro View devem usar o formato de tabela, caso contrário, Format-Table falharão. Se o modo de exibição alternativo for uma lista, use o Format-List cmdlet. Se o modo de exibição alternativo não for uma lista ou uma tabela, use o Format-Custom cmdlet.

Não é possível usar os parâmetros Property e View no mesmo comando.

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

-Wrap

Exibe na linha seguinte o texto que excede a largura da coluna. Por padrão, o texto que excede a largura da coluna é truncado.

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

Entradas

PSObject

Você pode canalizar qualquer objeto para esse cmdlet.

Saídas

Microsoft.PowerShell.Commands.Internal.Format

Esse cmdlet retorna objetos de formato que representam a tabela.

Observações

O Windows PowerShell inclui os seguintes aliases para Format-Table:

  • ft

Se você quiser usar Format-Table com o parâmetro Property , será necessário incluir o parâmetro Force em qualquer uma das seguintes condições: