Nelle shell tradizionali ogni strumento o comando determina il formato del proprio output. Alcuni strumenti consentono di personalizzare l'output e includono parametri speciali per il controllo della formattazione.

In Windows PowerShell gli unici cmdlet che consentono di formattare l'output sono i cmdlet Format:

  • Format-List

  • Format-Custom

  • Format-Table

  • Format-Wide

Nessuno degli altri cmdlet consente di formattare l'output. Di conseguenza, non è necessario apprendere parametri e routine di formattazione di più strumenti, ma è sufficiente apprendere l'utilizzo dei cmdlet Format e dei relativi parametri.

Quando si esegue un comando, tramite Windows PowerShell viene chiamato il formattatore predefinito, determinato dal tipo di dati da visualizzare. Il formattatore determina quali sono le proprietà dell'output da visualizzare e se tali proprietà vengono visualizzate in un elenco o in una tabella.

Quando si utilizza, ad esempio, il cmdlet Get-Service, la visualizzazione predefinita è costituita da una tabella con tre colonne, come illustrato di seguito:

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

Per modificare il formato dell'output di qualsiasi cmdlet, utilizzare l'operatore pipeline (|) per inviare l'output del comando a un cmdlet Format.

Ad esempio, il comando seguente invia l'output di un comando Get-Service al cmdlet Format-List. Di conseguenza, i dati dei servizi vengono formattati sotto forma di un elenco per ogni servizio.

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   : {}

In questo formato i dati vengono visualizzati in un elenco anziché in una tabella e sono disponibili maggiori informazioni su ogni servizio. Anziché tre colonne di dati per ogni servizio, sono presenti nove righe di dati. Format-List non ha recuperato le informazioni sul servizio aggiuntive. I dati erano presenti anche negli oggetti recuperati da Get-Service, ma sono stati omessi da Format-Table, il formattatore predefinito, in quanto sullo schermo è possibile visualizzare un massimo di tre colonne.

Oltre a impostare la visualizzazione dei dati in un elenco o in una tabella, è anche possibile determinare quali proprietà dell'oggetto devono essere visualizzate. Nella visualizzazione predefinita di Get-Service, ad esempio, sono incluse solo le proprietà Status, Name e DisplayName dell'oggetto servizio.

Per visualizzare tutte le proprietà di un oggetto, utilizzare un operatore pipeline (|) per inviare l'output di un comando al cmdlet Get-Member. Per visualizzare, ad esempio, tutte le proprietà di un oggetto servizio, digitare:

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;}

Poiché tutte queste proprietà sono incluse nell'oggetto recuperato da Get-Service per ogni servizio, è possibile visualizzarle tutte o solo alcune. Utilizzare il parametro Property dei cmdlet Format per selezionare le proprietà da visualizzare e l'ordine di visualizzazione. Nel comando seguente, ad esempio, viene utilizzato Format-Table per visualizzare solo le proprietà Name, ServiceType e CanShutDown del servizio.

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

Le operazioni descritte sono solo alcune tra le operazioni di base che è possibile utilizzare per definire le modalità di visualizzazione in Windows PowerShell. Per ulteriori informazioni, utilizzare i comandi seguenti per visualizzare la Guida per i cmdlet Format:

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




Argomenti della Guida