Format-Table
Formatta l'output come tabella.
Sintassi
Format-Table [[-Property] <Object[]>] [-AutoSize] [-DisplayError] [-Expand <string>] [-Force] [-GroupBy <Object>] [-HideTableHeaders] [-InputObject <psobject>] [-ShowError] [-View <string>] [-Wrap] [<CommonParameters>]
Descrizione
Il cmdlet Format-Table formatta l'output di un comando come tabella le cui colonne includono proprietà selezionate dell'oggetto. Il tipo dell'oggetto determina il layout predefinito e le proprietà visualizzate in ciascuna colonna. È tuttavia possibile utilizzare il parametro Property per selezionare le proprietà che si desidera visualizzare.
È inoltre possibile utilizzare una tabella hash per aggiungere proprietà calcolate a un oggetto prima di visualizzarlo e per specificare le intestazioni di colonna nella tabella. Per aggiungere una proprietà calcolata, utilizzare i parametri Property o GroupBy.
Parametri
-AutoSize
Adatta le dimensioni e il numero delle colonne in base alla larghezza dei dati. Per impostazione predefinita, le dimensioni e il numero delle colonne sono determinate dalla visualizzazione.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-DisplayError
Visualizza gli errori sulla riga di comando.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Expand <string>
Formatta l'oggetto insieme, nonché gli oggetti inclusi nell'insieme. Questo parametro è progettato in modo da formattare oggetti che supportano l'interfaccia ICollection (System.Collections). Il valore predefinito è EnumOnly.
I valori validi sono:
-- EnumOnly: visualizza le proprietà degli oggetti presenti nella raccolta.
-- CoreOnly: visualizza le proprietà dell'oggetto raccolta.
-- Both: visualizza le proprietà dell'oggetto raccolta e degli oggetti inclusi nella raccolta.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Force
Indica al cmdlet di visualizzare tutte le informazioni sull'errore. Utilizzare con il parametro DisplayError o ShowError. Per impostazione predefinita, quando un oggetto errore viene scritto nei flussi di errore o di visualizzazione, solo una parte delle informazioni sull'errore viene visualizzata.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-GroupBy <Object>
Dispone l'output ordinato in tabelle separate in base al valore di una proprietà. Ad esempio, è possibile utilizzare GroupBy per elencare i servizi in tabelle separate in base al relativo stato.
Immettere un'espressione o una proprietà dell'output. È necessario ordinare l'output prima di inviarlo a Format-Table.
Il valore del parametro GroupBy può essere una nuova proprietà calcolata. Per creare una proprietà calcolata, utilizzare una tabella hash. Le chiavi valide sono le seguenti:
-- Name (o Label) <stringa>
-- Expression <stringa> o <blocco di script>
-- FormatString <stringa>
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-HideTableHeaders
Omette le intestazioni di colonna dalla tabella.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-InputObject <psobject>
Specifica gli oggetti da formattare. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
true (ByValue) |
Accettare caratteri jolly? |
false |
-Property <Object[]>
Specifica le proprietà dell'oggetto incluse nella visualizzazione e l'ordine in cui vengono visualizzate. Digitare uno o più nomi di proprietà (separati da virgole) o utilizzare una tabella hash per visualizzare una proprietà calcolata. È consentito l'utilizzo di caratteri jolly.
Se questo parametro viene omesso, le proprietà incluse nella visualizzazione dipenderanno dall'oggetto da visualizzare. Il nome del parametro ("Property") è facoltativo. Non è possibile utilizzare i parametri Property e View nello stesso comando.
Il valore del parametro Property può essere una nuova proprietà calcolata. Per creare una proprietà calcolata, utilizzare una tabella hash. Le chiavi valide sono le seguenti:
-- Name (o Label) <stringa>
-- Expression <stringa> o <blocco di script>
-- FormatString <stringa>
-- Width <int32>
-- Alignment (il valore può essere "Left", "Center" o "Right")
Obbligatorio? |
false |
Posizione? |
1 |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-ShowError
Invia gli errori attraverso la pipeline.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-View <string>
Specifica il nome di un formato tabella o di una "visualizzazione" alternativa. Non è possibile utilizzare i parametri Property e View nello stesso comando.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Wrap
Visualizza sulla riga successiva il testo che supera la larghezza della colonna. Per impostazione predefinita, il testo che supera la larghezza della colonna viene troncato.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
<CommonParameters>
Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.
Input e output
Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.
Input |
System.Management.Automation.PSObject È possibile reindirizzare qualsiasi oggetto a Format-Table. |
Output |
Microsoft.PowerShell.Commands.Internal.Format Format-Table restituisce gli oggetti formato che rappresentano la tabella. |
Note
È inoltre possibile fare riferimento a Format-Table tramite il relativo alias predefinito "FT". Per ulteriori informazioni, vedere about_Aliases.
Per il parametro GroupBy si presuppone che gli oggetti siano ordinati. Prima di utilizzare Format-Custom per raggruppare gli oggetti, ordinarli con Sort-Object.
Il parametro View consente di specificare un formato alternativo per la tabella. È possibile utilizzare le visualizzazioni definite nei file *.format.PS1XML della directory Windows PowerShell oppure creare visualizzazioni personalizzate in nuovi file PS1XML e utilizzare il cmdlet Update-FormatData per includerle in Windows PowerShell.
Per la visualizzazione alternativa del parametro View deve essere utilizzato il formato tabella. In caso contrario, il comando non verrà eseguito. Se la visualizzazione alternativa è un elenco, utilizzare Format-List. Se la visualizzazione alternativa non è né un elenco né una tabella, utilizzare Format-Custom.
Esempio 1
C:\PS>get-pssnapin | format-table -auto
Descrizione
-----------
Tramite questo comando le informazioni sugli snap-in di Windows PowerShell verranno formattate come tabella. Per impostazione predefinita, le informazioni vengono formattate come elenco. Verrà utilizzato il cmdlet Get-PSSnapin per ottenere gli oggetti che rappresentano gli snap-in. Verrà quindi utilizzato l'operatore pipeline (|) per passare l'oggetto al comando Format-Table. Format-Table formatta gli oggetti in una tabella. Il parametro Autosize consente di adattare la larghezza delle colonne per ridurre al minimo il troncamento.
Esempio 2
C:\PS>get-process | sort-object -property basepriority | format-table -groupby basepriority -wrap
Descrizione
-----------
Con questo comando i processi disponibili nel computer verranno visualizzati in gruppi con la stessa priorità di base.
Il cmdlet Get-Process ottiene gli oggetti che rappresentano ciascun processo nel computer. L'operatore pipeline (|) passa l'oggetto al cmdlet Sort-Object che ordina gli oggetti in base alla relativa priorità di base.
I risultati vengono passati al comando Format-Table da un altro operatore pipeline. Il parametro GroupBy consente di disporre in gruppi i dati relativi ai processi in base al valore della relativa proprietà BasePriority. Il parametro Wrap garantisce che i dati non vengano troncati.
Esempio 3
C:\PS>get-process | sort-object starttime | format-table -view starttime
Descrizione
-----------
Tramite questo comando le informazioni sui processi disponibili nel computer verranno visualizzate in gruppi in base alla data di inizio del processo. Verrà utilizzato il cmdlet Get-Process per ottenere gli oggetti che rappresentano i processi disponibili nel computer. Verrà quindi utilizzato l'operatore pipeline (|) per inviare l'output di Get-Process al cmdlet Sort-Object, che ordinerà i dati in base alla proprietà StartTime. Verrà infine utilizzato un altro operatore pipeline per inviare i risultati ordinati a Format-Table.
Verrà utilizzato il parametro View per selezionare la visualizzazione StartTime definita nel file di formattazione DotNetTypes.format.ps1xml per gli oggetti System.Diagnostics.Process, come quelli restituiti da Get-Process. Questa visualizzazione consente di convertire la proprietà StartTime del processo in una data in formato breve e quindi di raggruppare i processi in base alla data di inizio.
Il file di formattazione DotNetTypes.format.ps1xml include inoltre una visualizzazione Priority per i processi. È infine possibile creare file format.ps1xml con visualizzazioni personalizzate.
Esempio 4
C:\PS>get-service | format-table -property Name, DependentServices
Descrizione
-----------
Tramite questo comando tutti i servizi disponibili nel computer verranno visualizzati in una tabella con due colonne denominate Name e DependentServices. Viene utilizzato il cmdlet Get-Service per ottenere tutti i servizi disponibili nel computer. Verrà quindi utilizzato un operatore pipeline (|) per inviare i risultati al cmdlet Format-Table, che formatterà l'output in una tabella. Il parametro Property specifica le proprietà visualizzate nelle colonne della tabella. Il nome del parametro Property è facoltativo, pertanto può essere omesso ("format-table name, dependentservices").
Property e DependentServices sono solo due delle proprietà degli oggetti servizio. Per visualizzare tutte le proprietà, digitare "get-service | get-member".
Esempio 5
C:\PS>get-process notepad | format-table ProcessName, `
@{Label="TotalRunningTime"; Expression={(get-date) - $_.StartTime}}
Descrizione
-----------
Tramite questo comando verrà illustrato come utilizzare una proprietà calcolata in una tabella. Verrà infatti visualizzata una tabella in cui è indicato il nome del processo e il tempo totale di esecuzione di tutti i processi Notepad disponibili nel computer locale. Il tempo totale di esecuzione viene calcolato sottraendo l'ora di inizio di ogni processo dall'ora corrente.
In questo comando verrà utilizzato il cmdlet Get-Process per ottenere tutti i processi denominati "Notepad" disponibili nel computer locale. I risultati vengono inviati dall'operatore pipeline (|) a Format-Table, tramite cui viene visualizzata una tabella con due colonne: ProcessName, una proprietà standard dei processi e TotalRunningTime, una proprietà calcolata.
La proprietà TotalRunningTime verrà specificata tramite una tabella hash a due chiavi, Label ed Expression. Alla chiave Label verrà assegnato il nome della proprietà, mentre alla chiave Expression verrà assegnato il calcolo. Tramite l'espressione verrà ottenuta la proprietà StartTime di ogni oggetto processo che verrà sottratta dal risultato dell'esecuzione di un comando Get-Date, che consente di ottenere la data e l'ora corrente.
Esempio 6
C:\PS>$processes = get-wmiobject -ComputerName Server01 win32_process -filter "name='notepad.exe'"
C:\PS> $processes | format-table ProcessName, @{ Label = "Total Running Time"; `
Expression={(get-date) - $_.ConvertToDateTime($_.CreationDate)}}
Descrizione
-----------
Questi comandi sono simili al precedente, ma utilizzano il cmdlet Get-WmiObject e la classe Win32_Process per visualizzare informazioni sui processi Notepad disponibili in un computer remoto.
Nel primo comando viene utilizzato il cmdlet Get-WmiObject per ottenere le istanze della classe Win32_Process di Strumentazione gestione Windows (WMI) che descrive tutti i processi disponibili nel computer Server01 denominati Notepad.exe. Le informazioni sui processi verranno archiviate nella variabile $processes.
Nel secondo comando viene utilizzato l'operatore pipeline (|) per inviare le informazioni sui processi archiviate nella variabile $processes al cmdlet Format-Table che consentirà di visualizzare la proprietà ProcessName di ciascun processo unitamente a una nuova proprietà calcolata.
Il nome della nuova proprietà calcolata, Total Running Time, viene assegnato dal comando alla chiave Label. Verrà quindi utilizzato il blocco di script assegnato alla chiave Expression per calcolare l'intervallo di esecuzione del processo sottraendo alla data corrente la data di creazione del processo. Tramite il cmdlet Get-Date viene ottenuta la data corrente. Verrà utilizzato il metodo ConvertToDateTime per convertire la proprietà CreationDate dell'oggetto Win32_Process da un oggetto CIM_DATETIME di WMI in un oggetto DateTime di Microsoft .NET Framework che potrà essere confrontato con l'output di Get-Date. La data di creazione convertita verrà quindi sottratta dalla data corrente. Il risultato corrisponderà al valore di Total Running Time.
I caratteri di apice inverso (`) sono caratteri di continuazione della riga.