• 11/22/2019
  • 5 minutos para ler
    • j
    • s
    • B
    • m

PowerShell possui um conjunto de cmdlets que permitem que você controle como são exibidas as propriedades forparticular objetos. Os nomes de todos os cmdlets começam com o verbo Format., Deixam-te escolher as propriedades que queres mostrar.

Get-Command -Verb Format -Module Microsoft.PowerShell.Utility

Este artigo descreve o Format-Wide Format-List e Format-Table cmdlets.

cada tipo de objecto em PowerShell tem propriedades predefinidas que são usadas quando não indica quais as propriedades a mostrar. Cada cmdlet também usa o mesmo parâmetro de propriedade para especificar quais propostas você deseja exibir., Porque Format-Wide mostra apenas uma única propriedade, a sua Propertyparameter só tem um único valor, mas os parâmetros de propriedade de Format-List e Format-Tableaceitar uma lista de nomes de propriedade.

neste exemplo, o resultado padrão de Get-Process cmdlet mostra que temos duas instâncias do Explorer internacional em execução.,

Get-Process -Name iexplore

O formato padrão para objetos de Processo exibe as propriedades mostrado a seguir:

 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

Usando Format-Wide por um Único Item de Saída

Format-Wide cmdlet, por padrão, exibe apenas a propriedade padrão de um objeto., Theinformation associados a cada objeto é exibida em uma única coluna:

Get-Command -Verb Format | Format-Wide
Format-Custom Format-HexFormat-List Format-TableFormat-Wide

Você também pode especificar um não-propriedade padrão:

Get-Command -Verb Format | Format-Wide -Property Noun
Custom HexList TableWide

Controlando Format-Wide Display com Colunas

Com o Format-Wide cmdlet, você só pode apresentar uma única propriedade de cada vez. Isso faz com que seja útil para mostrar grandes listas em várias colunas.,

Get-Command -Verb Format | Format-Wide -Property Noun -Column 3
Custom Hex ListTable Wide

Format-List para um modo de Exibição de Lista

Format-List cmdlet apresenta um objeto na forma de uma listagem, com cada propriedade labeledand exibido em uma linha separada:

Get-Process -Name iexplore | Format-List
Id : 12808Handles : 578CPU : 13.140625SI : 1Name : iexploreId : 21748Handles : 641CPU : 3.59375SI : 1Name : iexplore

Você pode especificar propriedades como muitos como você deseja:

Get-Process -Name iexplore | Format-List -Property ProcessName,FileVersion,StartTime,Id

Obtenção de Informações Detalhadas Usando o Formato de Lista com Curingas

Format-List cmdlet permite que você usar um caractere curinga como o valor de seu parâmetro de Propriedade., Isto mostra informação detalhada. 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 objecto, use o comando Format-List -Property *. O comando a seguir gera mais de 60lines de saída para um único processo:

Get-Process -Name iexplore | Format-List -Property *

Embora o Format-List comando é útil para mostrar detalhes, se você quiser uma visão geral de outputthat inclui muitos itens, um simples modo de exibição tabular, geralmente é mais útil.,

Usando o Formato de Tabela para Tabela de Saída

Se você usar o Format-Table cmdlet sem nomes de propriedade especificada para formatar a saída deGet-Process comando, você terá exatamente a mesma saída como fazer sem um Format cmdlet. Bydefault, PowerShell exibe objetos de processo em um formato tabular.

Get-Service -Name win* | Format-Table

melhoria do formato-saída da tabela (AutoSize)

embora uma vista tabular seja útil para mostrar muita informação, pode ser difícil interpretar se a visualização for demasiado estreita para os dados., No exemplo anterior, a saída istrunced. Se indicar o parâmetro AutoSize quando executar o comando Format-Table, o PowerShell calcula as larguras de colunas com base nos dados reais apresentados. Isto torna os colunsreadable.

Get-Service -Name win* | Format-Table -AutoSize

o Format-Table cmdlet pode ainda truncar dados, mas apenas trunca no final do ecrã. As propriedades, para além da última mostrada, são dadas o tamanho que necessitam para que o elemento de dados mais longo seja exibido corretamente.,

Get-Service -Name win* | Format-Table -Property Name,Status,StartType,DisplayName,DependentServices -AutoSize

o comando Format-Table assume que as propriedades estão listadas por ordem de importância. Por isso, tenta mostrar as propriedades mais próximas do início. Se o comando Format-Table não puder deslocar todas as propriedades, remove algumas colunas da visualização. Você pode ver este comportamento no exemplo anterior da propriedade dos serviços dependentes.

Wrapping Format-Table Output in Columns (Wrap)

você pode forçar lengthy Format-Table dados a embrulhar dentro da sua coluna de visualização, usando o Wrapparameter., Usando o parâmetro Wrap não pode fazer o que você espera, pois usesdefault configurações se você não especificar também AutoSize:

Get-Service -Name win* | Format-Table -Property Name,Status,StartType,DisplayName,DependentServices -Wrap

Usando o parâmetro Wrap, por si só, não abranda processamento muito. No entanto, a usingAutoSize para formatar uma listagem recursiva de arquivos de uma grande estrutura de diretórios pode levar um longo tempo e usar muita memória antes de exibir os primeiros itens de saída.

Se você não está preocupado com a carga do sistema, então a AutoSize funciona bem com o parâmetro Wrap.,As colunas iniciais ainda usam a largura necessária para mostrar itens em uma linha, mas a finalcoluna é enrolada, se necessário.

Nota

algumas colunas podem não ser apresentadas quando você indicar as colunas mais largas primeiro. Para melhores resultados,especifique primeiro os menores elementos de dados.

no exemplo seguinte, especificamos primeiro as propriedades mais largas.

Get-Process -Name iexplore | Format-Table -Wrap -AutoSize -Property FileVersion,Path,Name,Id

mesmo com a embalagem, a coluna Id final é omitida:

organizando a saída da tabela (-GroupBy)

outro parâmetro útil para o controle tabular de saída é 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 próprio. Por exemplo, podemos agrupar serviços por StartType para uma inspeção mais fácil, omitindo o valor do starttype da listagem de propriedades:

Get-Service -Name win* | Sort-Object StartType | Format-Table -GroupBy StartType