Condividi tramite


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-Objecte 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 di 0
  • Allineamento: il valore può essere Left, Centero Right

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

PSObject

È 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: