Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O PowerShell tem um conjunto de cmdlets que permitem controlar como as propriedades são exibidas para objetos específicos. Os nomes de todos os cmdlets começam com o verbo Format. Eles permitem que você selecione quais propriedades você deseja mostrar.
Get-Command -Verb Format -Module Microsoft.PowerShell.Utility
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Format-Custom 6.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Format-Hex 6.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Format-List 6.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Format-Table 6.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Format-Wide 6.1.0.0 Microsoft.PowerShell.Utility
Este artigo descreve os cmdlets Format-Wide, Format-List e Format-Table.
Cada tipo de objeto no PowerShell tem propriedades padrão que são usadas quando você não seleciona as propriedades a serem exibidas. Cada cmdlet usa o mesmo parâmetro Property para especificar quais propriedades você deseja exibir. Como Format-Wide mostra apenas uma única propriedade, seu parâmetro Property usa apenas um único valor, mas o parâmetro Property de Format-List e Format-Table aceita uma lista de nomes de propriedade.
Neste exemplo, a saída padrão do Get-Process cmdlet mostra que temos duas instâncias do Internet Explorer em execução.
Get-Process -Name iexplore
O formato padrão para objetos Process exibe as propriedades mostradas aqui:
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName
------ ----- ----- ------ -- -- -----------
32 25.52 10.25 13.11 12808 1 iexplore
52 11.46 26.46 3.55 21748 1 iexplore
Utilização de Format-Wide para a saída de um único item
O Format-Wide cmdlet, por padrão, exibe apenas a propriedade padrão de um objeto. As informações associadas a cada objeto são exibidas em uma única coluna:
Get-Command -Verb Format | Format-Wide
Format-Custom Format-Hex
Format-List Format-Table
Format-Wide
Você também pode especificar uma propriedade não padrão:
Get-Command -Verb Format | Format-Wide -Property Noun
Custom Hex
List Table
Wide
Controlando a exibição de Format-Wide com a coluna
Com o Format-Wide cmdlet, você só pode exibir uma única propriedade de cada vez. Isso o torna útil para exibir listas grandes em várias colunas.
Get-Command -Verb Format | Format-Wide -Property Noun -Column 3
Custom Hex List
Table Wide
Usando Format-List para uma vista de lista
O Format-List cmdlet exibe um objeto na forma de uma listagem, com cada propriedade rotulada e exibida em uma linha separada:
Get-Process -Name iexplore | Format-List
Id : 12808
Handles : 578
CPU : 13.140625
SI : 1
Name : iexplore
Id : 21748
Handles : 641
CPU : 3.59375
SI : 1
Name : iexplore
Você pode especificar quantas propriedades quiser:
Get-Process -Name iexplore | Format-List -Property ProcessName,FileVersion,StartTime,Id
ProcessName : iexplore
FileVersion : 11.00.18362.1 (WinBuild.160101.0800)
StartTime : 10/22/2019 11:23:58 AM
Id : 12808
ProcessName : iexplore
FileVersion : 11.00.18362.1 (WinBuild.160101.0800)
StartTime : 10/22/2019 11:23:57 AM
Id : 21748
Obter informações detalhadas usando Format-List com curingas
O Format-List cmdlet permite que você use um curinga como o valor de seu parâmetro Property . Isso permite que você exiba informações detalhadas. Muitas vezes, os objetos incluem mais informações do que você precisa, e é por isso que o PowerShell não mostra todos os valores de propriedade por padrão. Para mostrar todas as propriedades de um objeto, use o Format-List -Property * comando. O comando a seguir gera mais de 60 linhas de saída para um único processo:
Get-Process -Name iexplore | Format-List -Property *
Embora o Format-List comando seja útil para mostrar detalhes, se você quiser uma visão geral da saída que inclua muitos itens, uma exibição tabular mais simples geralmente é mais útil.
Usando Format-Table para saída tabular
Se você usar o Format-Table cmdlet sem nomes de propriedade especificados para formatar a Get-Process saída do comando, obterá exatamente a mesma saída que obtém sem um Format cmdlet. Por padrão, o PowerShell exibe objetos Process em um formato tabular.
Get-Service -Name win* | Format-Table
Status Name DisplayName
------ ---- -----------
Running WinDefend Windows Defender Antivirus Service
Running WinHttpAutoProx... WinHTTP Web Proxy Auto-Discovery Se...
Running Winmgmt Windows Management Instrumentation
Running WinRM Windows Remote Management (WS-Manag...
Observação
Get-Service só está disponível em plataformas Windows.
Melhorar a saída Format-Table
Embora uma exibição tabular seja útil para exibir muitas informações, pode ser difícil interpretar se a exibição for muito estreita para os dados. No exemplo anterior, a saída é truncada. Se você especificar o parâmetro AutoSize ao executar o comando, o Format-Table PowerShell calculará as larguras das colunas com base nos dados reais exibidos. Isso torna as colunas legíveis.
Get-Service -Name win* | Format-Table -AutoSize
Status Name DisplayName
------ ---- -----------
Running WinDefend Windows Defender Antivirus Service
Running WinHttpAutoProxySvc WinHTTP Web Proxy Auto-Discovery Service
Running Winmgmt Windows Management Instrumentation
Running WinRM Windows Remote Management (WS-Management)
O Format-Table cmdlet ainda pode truncar dados, mas só trunca no final da tela.
As propriedades, diferentes da última exibida, recebem o tamanho necessário para que seu elemento de dados mais longo seja exibido corretamente.
Get-Service -Name win* |
Format-Table -Property Name, Status, StartType, DisplayName, DependentServices -AutoSize
Name Status StartType DisplayName DependentServi
ces
---- ------ --------- ----------- --------------
WinDefend Running Automatic Windows Defender Antivirus Service {}
WinHttpAutoProxySvc Running Manual WinHTTP Web Proxy Auto-Discovery Service {NcaSvc, iphl…
Winmgmt Running Automatic Windows Management Instrumentation {vmms, TPHKLO…
WinRM Running Automatic Windows Remote Management (WS-Management) {}
O Format-Table comando assume que as propriedades são listadas em ordem de importância. O cmdlet tenta exibir completamente as propriedades que estão mais próximas do início. Se o Format-Table comando não puder exibir todas as propriedades, ele removerá algumas colunas da exibição. Você pode ver esse comportamento no exemplo anterior da propriedade DependentServices .
Encapsulando Format-Table saída em colunas
Você pode forçar dados longos Format-Table a serem encapsulados em sua coluna de exibição usando o parâmetro Wrap . Usar o parâmetro Wrap pode não fazer o esperado, já que ele usa as configurações padrão se você também não especificar AutoSize:
Get-Service -Name win* |
Format-Table -Property Name, Status, StartType, DisplayName, DependentServices -Wrap
Name Status StartType DisplayName DependentServi
ces
---- ------ --------- ----------- --------------
WinDefend Running Automatic Windows Defender Antivirus Service {}
WinHttpAutoProxySvc Running Manual WinHTTP Web Proxy Auto-Discovery Service {NcaSvc,
iphlpsvc}
Winmgmt Running Automatic Windows Management Instrumentation {vmms,
TPHKLOAD,
SUService,
smstsmgr…}
WinRM Running Automatic Windows Remote Management (WS-Management) {}
Usar o parâmetro Wrap por si só não torna o processamento muito lento. No entanto, usar AutoSize para formatar uma listagem de arquivo recursivo de uma estrutura de diretório grande pode levar muito tempo e usar muita memória antes de exibir os primeiros itens de saída.
Se você não estiver preocupado com a carga do sistema, o AutoSize funciona bem com o parâmetro Wrap . As colunas iniciais ainda usam a largura necessária para exibir itens numa linha, mas a coluna final é ajustada, se necessário.
Observação
Algumas colunas podem não ser exibidas quando você especifica as colunas mais largas primeiro. Para obter melhores resultados, especifique primeiro os menores elementos de dados.
No exemplo a seguir, especificamos primeiro as propriedades mais amplas.
Get-Process -Name iexplore |
Format-Table -Wrap -AutoSize -Property FileVersion, Path, Name, Id
Mesmo com o embrulho, a coluna Id final é omitida:
FileVersion Path Nam
e
----------- ---- ---
11.00.18362.1 (WinBuild.160101.0800) C:\Program Files (x86)\Internet Explorer\IEXPLORE.EXE iex
plo
re
11.00.18362.1 (WinBuild.160101.0800) C:\Program Files\Internet Explorer\iexplore.exe iex
plo
re
Organizando os resultados da tabela
Outro parâmetro útil para controle de saída tabular é GroupBy. Listas tabulares mais longas, em particular, podem ser difíceis de comparar. O parâmetro GroupBy agrupa a saída com base num valor de propriedade. Por exemplo, podemos agrupar serviços por StartType para facilitar a inspeção, omitindo o valor StartType da listagem de propriedades:
Get-Service -Name win* | Sort-Object StartType | Format-Table -GroupBy StartType
StartType: Automatic
Status Name DisplayName
------ ---- -----------
Running WinDefend Windows Defender Antivirus Service
Running Winmgmt Windows Management Instrumentation
Running WinRM Windows Remote Management (WS-Managem…
StartType: Manual
Status Name DisplayName
------ ---- -----------
Running WinHttpAutoProxyS… WinHTTP Web Proxy Auto-Discovery Serv…