Compartilhar via


Format-Table

Formata a saída como uma tabela.

Sintaxe

Format-Table
      [[-Property] <Object[]>]
      [-AutoSize]
      [-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, mas você pode usar o parâmetro Propriedade para selecionar as propriedades que você deseja ver.

Você também 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.

Exemplos

Exemplo 1: formatar host do PowerShell

Este comando exibe informações sobre o programa host do PowerShell em uma tabela. Por padrão, eles são formatados em uma lista.

Get-Host | Format-Table -AutoSize

O cmdlet Get-Host obtém objetos que representam o host. O operador de pipeline (|) passa o objeto para o cmdlet Format-Table. O cmdlet Format-Table formata os objetos em uma tabela. O parâmetro AutoSize ajusta as larguras da coluna para minimizar o truncamento.

Exemplo 2: formatar processos por BasePriority

Esse comando exibe os processos no computador em grupos com a mesma prioridade base.

Get-Process | Sort-Object -Property basepriority | Format-Table -GroupBy basepriority -Wrap

O cmdlet Get-Process obtém objetos que representam cada processo no computador. O operador de pipeline (|) passa o objeto para o cmdlet Sort-Object, que classifica os objetos na ordem de sua prioridade base.

Outro operador de pipeline passa os resultados para o cmdlet Format-Table. O parâmetro GroupBy organiza os dados sobre os processos em grupos com base no valor de sua propriedade BasePriority. O parâmetro Wrap garante que os dados não sejam truncados.

Exemplo 3: formatar processos por data de início

Get-Process | Sort-Object starttime | Format-Table -View starttime

Esse comando exibe informações sobre os processos no computador em grupo com base na data de início do processo. Ele usa o cmdlet Get-Process para obter objetos que representam os processos no computador. O operador de pipeline (|) envia a saída de Get-Process para o cmdlet Sort-Object, que o classifica com base na propriedade StartTime. Outro operador de pipeline envia os resultados classificados para Format-Table.

O parâmetro View é usado para selecionar a exibição StartTime definida no arquivo para objetos System.Diagnostics.Process , como os retornados por . Essa exibição converte o startTime do processo em uma data curta e, em seguida, agrupa os processos por data de início.

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

Exemplo 4: formatar serviços

Get-Service | Format-Table -Property Name, DependentServices

Esse comando exibe todos os serviços no computador em uma tabela com duas colunas, Name e DependentServices. O cmdlet Get-Service obtém todos os serviços no computador. O operador de pipeline (|) envia os resultados para o cmdlet Format-Table, que formata a saída em uma tabela. O parâmetro Property especifica as propriedades que aparecem na tabela como colunas. O nome do parâmetro Property é opcional, portanto, você pode omitê-lo, por exemplo, Format-Table Name, DependentServices.

Name e DependentServices são apenas duas das propriedades dos objetos de serviço. Para exibir todas as propriedades, digite Get-Service | Get-Member -MemberType Properties.

Exemplo 5: formatar um processo e calcular seu tempo de execução

Este comando mostra como usar uma propriedade calculada em uma tabela.

Get-Process Notepad | Format-Table ProcessName,
   @{Label="TotalRunningTime"; Expression={(Get-Date) - $_.StartTime}}

O comando exibe uma tabela com o nome do processo e o tempo total de execução de todos os processos do Bloco de Notas no computador local. O tempo de execução total é calculado subtraindo a hora de início de cada processo da hora atual.

O comando usa o cmdlet Get-Process para obter todos os processos chamados Bloco de Notas no computador local. O operador de pipeline (|) envia os resultados para Format-Table, que exibe uma tabela com duas colunas: ProcessName, uma propriedade padrão de processos e TotalRunningTime, uma propriedade calculada.

A propriedade TotalRunningTime é especificada por uma tabela de hash com duas chaves, de Rótulo e expressão . O nome da propriedade é atribuído à chave Label. O cálculo é atribuído à chave expressão . A expressão obtém a propriedade StartTime de cada objeto de processo e a subtrai do resultado de um comando Get-Date, que obtém a data e a hora atuais.

Exemplo 6: formatar processos do bloco de notas

Esses comandos são semelhantes ao comando anterior, exceto pelo fato de que esses comandos usam o cmdlet Get-WmiObject.

$Processes = Get-WmiObject -ComputerName "Server01" -Class win32_process -Filter "name='notepad.exe'"
$Processes | Format-Table ProcessName, @{ Label = "Total Running Time"; Expression={(Get-Date) - $_.ConvertToDateTime($_.CreationDate)}}

O primeiro comando usa o cmdlet Get-WmiObject para obter instâncias da classe Win32_Process WMI que descreve todos os processos no computador Server01 nomeados Notepad.exe. O comando armazena as informações do processo na variável $Processes.

O segundo comando usa um operador de pipeline (|) para enviar as informações do processo na variável $Processes para o cmdlet Format-Table, que exibe o ProcessName e uma nova propriedade calculada.

O comando atribui o nome da nova propriedade calculada, "Tempo total de execução", à chave rótulo . O bloco de script atribuído à chave expressão calcula por quanto tempo o processo foi executado subtraindo a data de criação do processo da data atual. O cmdlet Get-Date obtém a data atual. O método ConvertToDateTime converte a propriedade CreationDate do objeto Win32_Process de um objeto CIM_DATETIME WMI em um objeto DateTime do .NET que pode ser comparado com a saída de . Em seguida, a data de criação convertida é subtraída da data atual. O resultado é o valor de tempo de execução total.

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

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

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

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

DayOfWeek  $_ / $null
--------- ------------
Wednesday

Failed to evaluate expression " $_ / $null ".
    + CategoryInfo          : InvalidArgument: (10/30/2013 2:28:07 PM: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 tamanho e o número da coluna são determinados pela exibição.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-DisplayError

Indica que o cmdlet exibe erros na linha de comando. Esse parâmetro raramente é usado, mas pode ser usado como um auxílio de depuração quando você está formatando expressões em um comando Format-Table e as expressões não parecem estar funcionando.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Expand

Especifica o formato do objeto de coleção, bem como 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 este parâmetro são:

  • 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.
Tipo:String
Valores aceitos:CoreOnly, EnumOnly, Both
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga: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 no erro ou exibe fluxos, apenas algumas das informações de erro são exibidas.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga: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 da saída. A saída deve ser classificada antes de enviá-la para Format-Table.

O valor do parâmetro GroupBy pode ser uma nova propriedade calculada. Para criar uma propriedade calculada, use uma tabela de hash. As chaves válidas são:

  • Nome (ou Rótulo) <cadeia de caracteres>
  • Expressão <cadeia de caracteres> ou <bloco de script>
  • < > de cadeia de caracteres formatString
Tipo:Object
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-HideTableHeaders

Omite os títulos de coluna da tabela.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga: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.

Tipo:PSObject
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga: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. Curingas 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 apenas PropertyA e PropertyB serão exibidos.

O nome do parâmetro Property é opcional. Você não pode usar os parâmetros Property e View no mesmo comando.

O valor do parâmetro da Propriedade pode ser uma nova propriedade calculada. Para criar uma propriedade calculada, use uma tabela de hash. As chaves válidas são:

  • Nome (ou Rótulo) <cadeia de caracteres>
  • Expressão <cadeia de caracteres> ou <bloco de script>
  • < > de cadeia de caracteres formatString
  • Largura <> int32
  • Alinhamento (o valor pode ser "Esquerda", "Centro" ou "Direita")
Tipo:Object[]
Cargo:0
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:True

-ShowError

Envia erros por meio do pipeline. Esse parâmetro raramente é usado, mas pode ser usado como um auxílio de depuração quando você está formatando expressões em um comando Format-Table e as expressões não parecem estar funcionando.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-View

Especifica o nome de um formato ou exibição de tabela alternativo. Você não pode usar os parâmetros Property e View no mesmo comando.

Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga: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.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

Entradas

PSObject

Você pode redirecionar qualquer objeto para Format-Table.

Saídas

Microsoft.PowerShell.Commands.Internal.Format

Format-Table retorna objetos de formato que representam a tabela.

Observações

O parâmetro GroupBy pressupõe que os objetos sejam classificados. Use o cmdlet Sort-Object antes de usar Format-Table para agrupar os objetos.

O parâmetro exibir permite que você especifique um formato alternativo para a tabela. Você pode usar as exibições definidas nos arquivos *.format.PS1XML no diretório do PowerShell ou criar suas próprias exibições em novos arquivos PS1XML e, em seguida, usar o cmdlet Update-FormatData para incluí-las no PowerShell. As exibições alternativas do parâmetro View devem usar o formato de tabela, caso contrário, o comando falhará. Se a exibição alternativa for uma lista, use o cmdlet Format-List. Se o modo de exibição alternativo não for uma lista ou uma tabela, use o cmdlet Format-Custom.