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 usare il parametro Property per selezionare le proprietà da visualizzare.
PowerShell usa i 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 proprietà specificate. Dopo aver creato una visualizzazione personalizzata, usare il parametro View per visualizzare la tabella con la visualizzazione personalizzata. Per altre informazioni sulle visualizzazioni, vedere about_Format.ps1xml.
È possibile usare 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, usare 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 oggetti System.Management.Automation.Internal.Host.InternalHost che rappresentano l'host. Gli oggetti vengono inviati alla pipeline e Format-Table
visualizzati in una tabella. Il parametro AutoSize regola le larghezze delle colonne per ridurre al minimo il troncamento.
Esempio 2: Formattare i processi di 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 in Sort-Object
. Gli oggetti vengono ordinati nell'ordine della proprietà BasePriority .
Gli oggetti ordinati vengono inviati alla pipeline a Format-Table
. Il parametro GroupBy dispone i dati di elaborazione in gruppi in base al valore della proprietà BasePriority . Il parametro Wrapping garantisce che i dati non siano troncati.
Esempio 3: Formattare i processi per data di inizio
In questo esempio vengono visualizzate informazioni sui processi in esecuzione nel computer. Gli oggetti sono 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 alla 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 breve data 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 visualizzazione personalizzata per l'output della tabella
In questo esempio una visualizzazione personalizzata visualizza il contenuto di una directory. La visualizzazione 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 alla pipeline.
Format-Table
usa il parametro View per specificare la visualizzazione personalizzata mygciview che include la colonna CreationTime .
L'output predefinito Format-Table
per Get-ChildItem
non include la colonna CreationTime .
Esempio 5: Usare le proprietà per l'output della tabella
In questo esempio viene usato 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
usa 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 di esecuzione totale 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, Etichetta ed Espressione. La chiave Etichetta specifica il nome della proprietà. La chiave Expression specifica il calcolo. L'espressione ottiene la proprietà StartTime di ogni oggetto process e lo sottrae dal risultato di un Get-Date
comando, che ottiene la data e l'ora correnti.
Esempio 7: Formattare i processi del blocco note
In questo esempio viene Get-CimInstance
usato 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 istanze della classe WMI Win32_Process che descrive tutti i processi del computer locale denominati notepad.exe. Gli oggetti di processo vengono archiviati nella $Processes
variabile.
Gli oggetti di processo nella $Processes
variabile vengono inviati alla 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 la durata dell'esecuzione del processo 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
Gli esempi seguenti mostrano 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.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DisplayError
Indica che il cmdlet visualizza errori nella riga di comando. Questo parametro può essere usato come supporto per il debug quando si formattano le espressioni in un Format-Table
comando e è necessario risolvere i problemi delle espressioni.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 raccolta e le proprietà degli oggetti nell'insieme.
Type: | String |
Accepted values: | CoreOnly, EnumOnly, Both |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Indica che il cmdlet indirizza il cmdlet per visualizzare tutte le informazioni sull'errore. Usare con il parametro DisplayError o ShowError . Per impostazione predefinita, quando un oggetto di errore viene scritto nel flusso di errore o visualizzato, vengono visualizzate solo alcune informazioni sugli errori.
È anche necessario quando si formattano determinati tipi .NET. Per altre informazioni, vedere la sezione Note .
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-GroupBy
Specifica l'output ordinato in tabelle separate in base a un valore di 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.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-HideTableHeaders
Omette le intestazioni di colonna dalla tabella.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | 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 usare 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 Proprietà e Visualizzazione 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.
Type: | Object[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-RepeatHeader
Ripete la visualizzazione dell'intestazione di una tabella dopo ogni schermo intero. L'intestazione ripetuta è utile quando l'output viene inviato in pipe a un pager, ad less
esempio o more
a paging con un lettore dello schermo.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ShowError
Questo parametro invia errori tramite la pipeline. Questo parametro può essere usato come supporto per il debug quando si formattano le espressioni in un Format-Table
comando e è necessario risolvere i problemi delle espressioni.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-View
A partire da PowerShell 6, le visualizzazioni predefinite sono 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 visualizzazione personalizzata per la tabella. È possibile usare le viste di PowerShell predefinite o creare visualizzazioni personalizzate. Per altre informazioni su come creare una visualizzazione personalizzata, vedere about_Format.ps1xml.
Le visualizzazioni alternative e personalizzate per il parametro View devono usare il formato della tabella, in caso contrario, Format-Table
ha esito negativo. 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 Proprietà e Visualizzazione nello stesso comando.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Input
È possibile eseguire la pipe di 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 colorizzare 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]
e i tipi primitivi .NET, che sono un superset dei tipi numerici predefiniti, ad esempio[int]
,[long]
e altri.Gli oggetti di input non hanno proprietà pubbliche.
Gli oggetti di input sono istanze dei tipi wrapper di PowerShell usati per i flussi di output diversi dal flusso di output Success. Ciò si applica solo quando questi tipi di wrapper vengono inviati al flusso di output Success che richiede l'acquisizione di tali tipi tramite parametri comuni, ad esempio ErrorVariable per primo o usando un reindirizzamento, ad esempio
*>&1
.