Format-Table
Formatta l'output come tabella.
Sintassi
Format-Table
[[-Property] <Object[]>]
[-AutoSize]
[-RepeatHeader]
[-HideTableHeaders]
[-Wrap]
[-GroupBy <Object>]
[-View <string>]
[-ShowError]
[-DisplayError]
[-Force]
[-Expand <string>]
[-InputObject <psobject>]
[<CommonParameters>]
Descrizione
Il Format-Table
cmdlet formatta l'output di un comando come tabella con le proprietà selezionate dell'oggetto in ogni colonna. Il tipo di oggetto determina il layout e le proprietà predefiniti visualizzati in ogni colonna. È possibile utilizzare il parametro Property per selezionare le proprietà da visualizzare.
PowerShell usa formattatori predefiniti per definire la modalità di visualizzazione dei tipi di oggetto. È possibile usare .ps1xml
i file per creare visualizzazioni personalizzate che visualizzano una tabella di output con le proprietà specificate. Dopo aver creato una vista personalizzata, usare il parametro View per visualizzare la tabella con la visualizzazione personalizzata. Per altre informazioni sulle visualizzazioni, vedere about_Format.ps1xml.
È possibile utilizzare una tabella hash per aggiungere proprietà calcolate a un oggetto prima di visualizzarla e specificare le intestazioni di colonna nella tabella. Per aggiungere una proprietà calcolata, utilizzare il parametro Property o GroupBy . Per altre informazioni sulle tabelle hash, vedere about_Hash_Tables.
Esempio
Esempio 1: Formattare l'host di PowerShell
In questo esempio vengono visualizzate informazioni sul programma host per PowerShell in una tabella.
Get-Host | Format-Table -AutoSize
Il Get-Host
cmdlet ottiene gli oggetti System.Management.Automation.Internal.Host.InternalHost che rappresentano l'host. Gli oggetti vengono inviati nella pipeline a Format-Table
e visualizzati in una tabella. Il parametro AutoSize regola la larghezza della colonna per ridurre al minimo il troncamento.
Esempio 2: Formattare i processi per BasePriority
In questo esempio i processi vengono visualizzati in gruppi con la stessa proprietà BasePriority .
Get-Process | Sort-Object -Property BasePriority | Format-Table -GroupBy BasePriority -Wrap
Il Get-Process
cmdlet ottiene oggetti che rappresentano ogni processo nel computer e li invia alla pipeline a Sort-Object
. Gli oggetti vengono ordinati nell'ordine della proprietà BasePriority .
Gli oggetti ordinati vengono inviati nella pipeline a Format-Table
. Il parametro GroupBy dispone i dati del processo in gruppi in base al valore della proprietà BasePriority . Il parametro Wrap garantisce che i dati non siano troncati.
Esempio 3: Formattare i processi in base alla data di inizio
In questo esempio vengono visualizzate informazioni sui processi in esecuzione nel computer. Gli oggetti vengono ordinati e Format-Table
usano una visualizzazione per raggruppare gli oggetti in base alla data di inizio.
Get-Process | Sort-Object StartTime | Format-Table -View StartTime
Get-Process
ottiene gli oggetti System.Diagnostics.Process che rappresentano i processi in esecuzione nel computer. Gli oggetti vengono inviati alla pipeline a Sort-Object
e vengono ordinati in base alla proprietà StartTime .
Gli oggetti ordinati vengono inviati nella pipeline a Format-Table
. Il parametro View specifica la visualizzazione StartTime definita nel file di PowerShell DotNetTypes.format.ps1xml
per gli oggetti System.Diagnostics.Process . La visualizzazione StartTime converte ogni ora di inizio dei processi in una data breve e quindi raggruppa i processi in base alla data di inizio.
Il DotNetTypes.format.ps1xml
file contiene una visualizzazione Priorità per i processi. È possibile creare file personalizzati format.ps1xml
con visualizzazioni personalizzate.
Esempio 4: Usare una vista personalizzata per l'output della tabella
In questo esempio, una visualizzazione personalizzata visualizza il contenuto di una directory. La vista personalizzata aggiunge la colonna CreationTime all'output della tabella per gli oggetti System.IO.DirectoryInfo e System.IO.FileInfo creati da Get-ChildItem
.
La visualizzazione personalizzata in questo esempio è stata creata dalla vista definita nel codice sorgente di PowerShell. Per altre informazioni sulle visualizzazioni e sul codice usato per creare la visualizzazione di questo esempio, vedere about_Format.ps1xml.
Get-ChildItem -Path C:\Test | Format-Table -View mygciview
Directory: C:\Test
Mode LastWriteTime CreationTime Length Name
---- ------------- ------------ ------ ----
d----- 11/4/2019 15:54 9/24/2019 15:54 Archives
d----- 8/27/2019 14:22 8/27/2019 14:22 Drawings
d----- 10/23/2019 09:38 2/25/2019 09:38 Files
-a---- 11/7/2019 11:07 11/7/2019 11:07 11345 Alias.txt
-a---- 2/27/2019 15:15 2/27/2019 15:15 258 alias_out.txt
-a---- 2/27/2019 15:16 2/27/2019 15:16 258 alias_out2.txt
Get-ChildItem
ottiene il contenuto della directory corrente, C:\Test
. Gli oggetti System.IO.DirectoryInfo e System.IO.FileInfo vengono inviati nella pipeline.
Format-Table
usa il parametro View per specificare la visualizzazione personalizzata mygciview che include la colonna CreationTime .
L'output predefinito Format-Table
per non include la colonna CreationTimeGet-ChildItem
.
Esempio 5: Usare le proprietà per l'output della tabella
In questo esempio viene utilizzato il parametro Property per visualizzare tutti i servizi del computer in una tabella a due colonne che mostra le proprietà Name e DependentServices.
Get-Service | Format-Table -Property Name, DependentServices
Get-Service
ottiene tutti i servizi nel computer e invia gli oggetti System.ServiceProcess.ServiceController nella pipeline. Format-Table
utilizza il parametro Property per specificare che le proprietà Name e DependentServices vengono visualizzate nella tabella.
Name e DependentServices sono due delle proprietà del tipo di oggetto. Per visualizzare tutte le proprietà: Get-Service | Get-Member -MemberType Properties
.
Esempio 6: Formattare un processo e calcolarne il tempo di esecuzione
In questo esempio viene visualizzata una tabella con il nome del processo e il tempo totale di esecuzione per i processi del Blocco note del computer locale. Il tempo di esecuzione totale viene calcolato sottraendo l'ora di inizio di ogni processo dall'ora corrente.
Get-Process notepad |
Format-Table ProcessName, @{Label="TotalRunningTime"; Expression={(Get-Date) - $_.StartTime}}
ProcessName TotalRunningTime
----------- ----------------
notepad 03:20:00.2751767
notepad 00:00:16.7710520
Get-Process
ottiene tutti i processi del Blocco note del computer locale e invia gli oggetti nella pipeline. Format-Table
visualizza una tabella con due colonne: ProcessName, una Get-Process
proprietà e TotalRunningTime, una proprietà calcolata.
La proprietà TotalRunningTime viene specificata da una tabella hash con due chiavi, Label ed Expression. La chiave Label specifica il nome della proprietà. La chiave espressione specifica il calcolo. L'espressione ottiene la proprietà StartTime di ogni oggetto processo e la sottrae dal risultato di un Get-Date
comando, che ottiene la data e l'ora correnti.
Esempio 7: Formattare i processi del Blocco note
Questo esempio usa Get-CimInstance
per ottenere il tempo di esecuzione per tutti i processi del Blocco note nel computer locale. È possibile usare Get-CimInstance
con il parametro ComputerName per ottenere informazioni dai computer remoti.
$Processes = Get-CimInstance -Class win32_process -Filter "name='notepad.exe'"
$Processes | Format-Table ProcessName, @{
Label = "Total Running Time"
Expression={(Get-Date) - $_.CreationDate}
}
ProcessName Total Running Time
----------- ------------------
notepad.exe 03:39:39.6260693
notepad.exe 00:19:56.1376922
Get-CimInstance
ottiene le istanze della classe Win32_Process WMI che descrive tutti i processi del computer locale denominati notepad.exe. Gli oggetti processo vengono archiviati nella $Processes
variabile .
Gli oggetti processo nella $Processes
variabile vengono inviati nella pipeline a Format-Table
, che visualizza la proprietà ProcessName e una nuova proprietà calcolata Total Running Time.
Il comando assegna il nome della nuova proprietà calcolata Total Running Time alla chiave Label . Il blocco di script della chiave di espressione calcola per quanto tempo il processo è stato eseguito sottraendo la data di creazione dei processi dalla data corrente. Il Get-Date
cmdlet ottiene la data corrente. La data di creazione viene sottratta dalla data corrente. Il risultato è il valore di Total Running Time.
Esempio 8: Risoluzione degli errori di formato
Negli esempi seguenti vengono illustrati i risultati dell'aggiunta dei parametri DisplayError o ShowError con un'espressione.
Get-Date | Format-Table DayOfWeek,{ $_ / $null } -DisplayError
DayOfWeek $_ / $null
--------- ------------
Wednesday #ERR
Get-Date | Format-Table DayOfWeek,{ $_ / $null } -ShowError
DayOfWeek $_ / $null
--------- ------------
Wednesday
InvalidArgument: Failed to evaluate expression " $_ / $null ".
Parametri
-AutoSize
Indica che il cmdlet regola le dimensioni della colonna e il numero di colonne in base alla larghezza dei dati. Per impostazione predefinita, le dimensioni e il numero di colonne dipendono dalla visualizzazione.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-DisplayError
Indica che il cmdlet visualizza gli errori nella riga di comando. Questo parametro può essere usato come supporto per il debug quando si formattano espressioni in un Format-Table
comando ed è necessario risolvere i problemi delle espressioni.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Expand
Specifica il formato dell'oggetto raccolta e degli oggetti nell'insieme. Questo parametro è progettato per formattare gli oggetti che supportano l'interfaccia ICollection (System.Collections). Il valore predefinito è EnumOnly. I valori accettabili per questo parametro sono i seguenti:
- EnumOnly: visualizza le proprietà degli oggetti nell'insieme.
- CoreOnly: visualizza le proprietà dell'oggetto raccolta.
- Entrambi: visualizza le proprietà dell'oggetto insieme e le proprietà degli oggetti nell'insieme.
Tipo: | String |
Valori accettati: | CoreOnly, EnumOnly, Both |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Force
Indica che il cmdlet indirizza il cmdlet a visualizzare tutte le informazioni sull'errore. Usare con il parametro DisplayError o ShowError . Per impostazione predefinita, quando un oggetto errore viene scritto nei flussi di errore o di visualizzazione, vengono visualizzate solo alcune informazioni sull'errore.
Obbligatorio anche per la formattazione di determinati tipi .NET. Per altre informazioni, vedere la sezione Note .
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-GroupBy
Specifica l'output ordinato in tabelle separate in base a un valore della proprietà. Ad esempio, è possibile usare GroupBy per elencare i servizi in tabelle separate in base al relativo stato.
Immettere un'espressione o una proprietà. Il parametro GroupBy prevede che gli oggetti siano ordinati.
Usare il Sort-Object
cmdlet prima di usare Format-Table
per raggruppare gli oggetti.
Il valore del parametro GroupBy può essere una nuova proprietà calcolata. La proprietà calcolata può essere un blocco di script o una tabella hash. Le coppie chiave-valore valide sono:
- Nome (o Etichetta) -
<string>
- Espressione -
<string>
o<script block>
- FormatString -
<string>
Per altre informazioni, vedere about_Calculated_Properties.
Tipo: | Object |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-HideTableHeaders
Omette le intestazioni di colonna dalla tabella.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-InputObject
Specifica gli oggetti da formattare. Immettere una variabile che contiene gli oggetti oppure digitare un comando o un'espressione che ottiene gli oggetti.
Tipo: | PSObject |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-Property
Specifica le proprietà dell'oggetto che vengono presentate nella visualizzazione e l'ordine in cui appaiono. Digitare uno o più nomi di proprietà, separati da virgole o utilizzare una tabella hash per visualizzare una proprietà calcolata. I caratteri jolly sono consentiti.
Se si omette questo parametro, le proprietà visualizzate nella visualizzazione dipendono dalle proprietà del primo oggetto. Ad esempio, se il primo oggetto ha PropertyA e PropertyB , ma gli oggetti successivi hanno PropertyA, PropertyB e PropertyC, vengono visualizzate solo le intestazioni PropertyA e PropertyB .
Il parametro Property è facoltativo. Non è possibile usare i parametri Property e View nello stesso comando.
Il valore del parametro Property può essere una nuova proprietà calcolata. La proprietà calcolata può essere un blocco di script o una tabella hash. Le coppie chiave-valore valide sono:
- Nome (o Etichetta)
<string>
- Espressione -
<string>
o<script block>
- FormatString -
<string>
- Larghezza :
<int32>
deve essere maggiore di0
- Allineamento: il valore può essere
Left
,Center
oRight
Per altre informazioni, vedere about_Calculated_Properties.
Tipo: | Object[] |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | True |
-RepeatHeader
Ripete la visualizzazione dell'intestazione di una tabella dopo ogni schermo pieno. L'intestazione ripetuta è utile quando l'output viene inviato tramite pipe a un cercapersone, ad less
esempio o more
a un paging con un'utilità per la lettura dello schermo.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-ShowError
Questo parametro invia errori tramite la pipeline. Questo parametro può essere usato come supporto per il debug quando si formattano espressioni in un Format-Table
comando ed è necessario risolvere i problemi delle espressioni.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-View
A partire da PowerShell 6, le visualizzazioni predefinite vengono definite nel codice sorgente di PowerShell C#
. I *.format.ps1xml
file di PowerShell 5.1 e versioni precedenti non esistono in PowerShell 6 e versioni successive.
Il parametro View consente di specificare un formato alternativo o una vista personalizzata per la tabella. È possibile usare le visualizzazioni predefinite di PowerShell o creare visualizzazioni personalizzate. Per altre informazioni su come creare una vista personalizzata, vedere about_Format.ps1xml.
Le viste alternative e personalizzate per il parametro View devono usare il formato di tabella, in caso contrario, Format-Table
non riesce. Se la visualizzazione alternativa è un elenco, usare il Format-List
cmdlet . Se la visualizzazione alternativa non è un elenco o una tabella, usare il Format-Custom
cmdlet .
Non è possibile usare i parametri Property e View nello stesso comando.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Wrap
Visualizza nella riga successiva il testo di dimensioni superiori alla larghezza della colonna. Per impostazione predefinita, il testo di dimensioni superiori alla larghezza della colonna viene troncato.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
È possibile inviare tramite pipe qualsiasi oggetto a questo cmdlet.
Output
Microsoft.PowerShell.Commands.Internal.Format
Questo cmdlet restituisce oggetti di formato che rappresentano la tabella.
Note
PowerShell include gli alias seguenti per Format-Table
:
- Tutte le piattaforme:
ft
PowerShell 7.2 ha introdotto nuove funzionalità per colorare l'output. I colori possono essere gestiti usando la $PSStyle
variabile automatica. La $PSStyle.Formatting.TableHeader
proprietà definisce il colore utilizzato per l'intestazione della tabella visualizzata da Format-Table
. Per altre informazioni su questa impostazione, vedere about_ANSI_Terminals.
Se si vuole usare Format-Table
con il parametro Property , è necessario includere il parametro Force in una delle condizioni seguenti:
Gli oggetti di input vengono in genere formattati fuori banda usando il
ToString()
metodo . Questo vale per[string]
i tipi primitivi e .NET, che sono un superset dei tipi numerici predefiniti, ad[int]
esempio ,[long]
e altri.Gli oggetti di input non hanno proprietà pubbliche.
Gli oggetti di input sono istanze dei tipi di wrapper usati da PowerShell per i flussi di output diversi dal flusso di output Success. Questo vale solo quando questi tipi di wrapper vengono inviati al flusso di output Success che richiede di averli acquisiti tramite parametri comuni, ad esempio ErrorVariable per primo o usando un reindirizzamento,
*>&1
ad esempio .