Format-Table
Formatta l'output come tabella.
Sintassi
All
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 le larghezze delle colonne per ridurre al minimo il troncamento.
Esempio 2: Formattare i processi in base a 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-Objecte 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 Get-ChildItem non include la colonna CreationTime .
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 ciascun 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 del tempo di esecuzione totale.
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 e il numero di colonne in base alla larghezza dei dati. Per impostazione predefinita, le dimensioni e il numero della colonna sono determinati dalla visualizzazione.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | 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.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | 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.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Valori accettati: | CoreOnly, EnumOnly, Both |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | 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 ulteriori informazioni, vedere la sezione Note.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-GroupBy
Specifica 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à. Il parametro GroupBy richiede che gli oggetti siano ordinati.
Usare il cmdlet Sort-Object 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.
Proprietà dei parametri
| Tipo: | Object |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-HideTableHeaders
Omette le intestazioni di colonna dalla tabella.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-InputObject
Specifica gli oggetti da formattare. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che ottiene gli oggetti .
Proprietà dei parametri
| Tipo: | PSObject |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | True |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Property
Specifica le proprietà dell'oggetto visualizzate 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. Sono consentiti i metacaratteri.
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
- Nome (o Etichetta)
<string> - Espressione -
<string>o<script block> - FormatString -
<string> - Larghezza :
<int32>deve essere maggiore di0 - Allineamento: il valore può essere
Left,CenteroRight
Per altre informazioni, vedere about_Calculated_Properties.
Proprietà dei parametri
| Tipo: | Object[] |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | True |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | 0 |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-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.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | 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.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-View
A partire da PowerShell 6, le visualizzazioni predefinite vengono definite nel codice sorgente di PowerShell C# . I file *.format.ps1xml 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.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Wrap
Visualizza il testo che supera la larghezza della colonna nella riga successiva. Per impostazione predefinita, il testo che supera la larghezza della colonna viene troncato.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
CommonParameters
Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.
Input
PSObject
È possibile passare qualsiasi oggetto come input 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 desidera utilizzare Format-Table con il parametro della proprietà , è necessario includere il parametro Force in una delle seguenti condizioni:
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,
*>&1ad esempio .I tipi di wrapper includono:
- System.Management.Automation.ErrorRecord
- System.Management.Automation.WarningRecord
- System.Management.Automation.VerboseRecord
- System.Management.Automation.DebugRecord
- System.Management.Automation.InformationRecord