Em shells tradicionais, cada ferramenta ou comando determina o formato de sua saída. Algumas ferramentas permitem personalizar a saída e incluem parâmetros especiais para controlar o formato da saída.

No Windows PowerShell, os únicos cmdlets que formatam saídas são os cmdlets de formato:

  • Format-List

  • Format-Custom

  • Format-Table

  • Format-Wide

Nenhum outro cmdlet formata saídas. Como resultado, não são necessárias informações sobre rotinas de formatação e parâmetros de várias ferramentas. São necessárias apenas informações sobre os cmdlets Format e seus parâmetros.

Ao executar um comando, o Windows PowerShell chama o formatador padrão, que é determinado pelo tipo de dados que está sendo exibido. O formatador determina as propriedades da saída que serão exibidas e se serão exibidas em uma lista ou uma tabela.

Por exemplo, quando você usa o cmdlet Get-Service, a exibição padrão é uma tabela de três colunas como a seguinte:

C:\PS> get-service
Status   Name               DisplayName
------   ----               -----------
Running  AdtAgent           Event Forwarder
Stopped  Alerter            Alerter
Running  ALG                Application Layer Gateway Service

Para alterar o formato da saída de qualquer cmdlet, use o operador de pipeline (|) para enviar a saída do comando a um cmdlet Format.

Por exemplo, o comando a seguir envia a saída de um comando Get-Service para o cmdlet Format-List. Como resultado, os dados dos serviços são formatados como uma lista para cada serviço.

C:\PS> get-service | format-list
Name                : AdtAgent
DisplayName         : Event Forwarder
Status              : Running
DependentServices   : {}
ServicesDependedOn  : {eventlog, dnscache}
CanPauseAndContinue : False
CanShutdown         : True
CanStop             : True
ServiceType         : Win32OwnProcess

Name                : Alerter
DisplayName         : Alerter
Status              : Stopped
DependentServices   : {}
ServicesDependedOn  : {LanmanWorkstation}
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : False
ServiceType         : Win32ShareProcess

Name                : ALG
DisplayName         : Application Layer Gateway Service
Status              : Running
DependentServices   : {}

Nesse formato, não apenas os dados são mostrados em uma lista, em vez de uma tabela, mas também há mais informações sobre cada serviço. Em vez de três colunas de dados para cada serviço, há nove linhas de dados. Format-List não recuperou as informações de serviço adicionais. Os dados já estavam nos objetos recuperados por Get-Service, mas Format-Table, o formatador padrão, omitiu esses dados, pois não foi possível exibir mais do que três colunas na tela.

Além de determinar se os dados serão mostrados em uma lista ou uma tabela, é possível também determinar as propriedades do objeto que serão exibidas. Por exemplo, a exibição padrão de Get-Service mostra apenas as propriedades Status, Name e DisplayName do objeto de serviço.

Para ver todas as propriedades de um objeto, use um operador de pipeline (|) para enviar a saída de um comando ao cmdlet Get-Member. Por exemplo, para visualizar todas as propriedades de um objeto de serviço, digite:

get-service | get-member -membertype *property

   TypeName: System.ServiceProcess.ServiceController

Name                MemberType    Definition
----                ----------    ----------
Name                AliasProperty Name = ServiceName
CanPauseAndContinue Property      System.Boolean CanPauseAndContinue {get;}
CanShutdown         Property      System.Boolean CanShutdown {get;}
CanStop             Property      System.Boolean CanStop {get;}
Container           Property      System.ComponentModel.IContainer Container {get;}
DependentServices   Property      System.ServiceProcess.ServiceController[] DependentServices {get;}
DisplayName         Property      System.String DisplayName {get;set;}
MachineName         Property      System.String MachineName {get;set;}
ServiceHandle       Property      System.Runtime.InteropServices.SafeHandle ServiceHandle {get;}
ServiceName         Property      System.String ServiceName {get;set;}
ServicesDependedOn  Property      System.ServiceProcess.ServiceController[] ServicesDependedOn {get;}
ServiceType         Property      System.ServiceProcess.ServiceType ServiceType {get;}
Site                Property      System.ComponentModel.ISite Site {get;set;}
Status              Property      System.ServiceProcess.ServiceControllerStatus Status {get;}

Como todas essas propriedades estão no objeto recuperado por Get-Service para cada serviço, é possível exibir qualquer uma delas ou todas elas. Use o parâmetro Property dos cmdlets Format para selecionar as propriedades a serem exibidas e a ordem de exibição. Por exemplo, o comando a seguir usa o comando Format-Table para exibir apenas as propriedades Name, ServiceType e CanShutDown do serviço.

get-service | format-table name, Servicetype, Canshutdown

Isso é apenas uma amostra do que é possível executar com as exibições do Windows PowerShell. Para obter mais detalhes, use os comandos a seguir para ler a Ajuda para os cmdlets Format:

get-help format-list
get-help format-table
get-help format-wide
get-help format-custom




Sumário