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