Format-Table

Formatiert die Ausgabe als Tabelle.

Syntax

Format-Table
      [-AutoSize]
      [-RepeatHeader]
      [-HideTableHeaders]
      [-Wrap]
      [[-Property] <Object[]>]
      [-GroupBy <Object>]
      [-View <String>]
      [-ShowError]
      [-DisplayError]
      [-Force]
      [-Expand <String>]
      [-InputObject <PSObject>]
      [<CommonParameters>]

Beschreibung

Das Format-Table Cmdlet formatiert die Ausgabe eines Befehls als Tabelle mit den ausgewählten Eigenschaften des Objekts in jeder Spalte. Der Objekttyp bestimmt das Standardlayout und die Eigenschaften, die in jeder Spalte angezeigt werden. Sie können den Eigenschaftsparameter verwenden, um die Eigenschaften auszuwählen, die Sie anzeigen möchten.

PowerShell verwendet Standardformatierer, um zu definieren, wie Objekttypen angezeigt werden. Sie können Dateien verwenden .ps1xml , um benutzerdefinierte Ansichten zu erstellen, die eine Ausgabetabelle mit angegebenen Eigenschaften anzeigen. Nachdem eine benutzerdefinierte Ansicht erstellt wurde, verwenden Sie den Ansichtsparameter , um die Tabelle mit Ihrer benutzerdefinierten Ansicht anzuzeigen. Weitere Informationen zu Ansichten finden Sie unter about_Format.ps1xml.

Sie können eine Hashtabelle verwenden, um berechnete Eigenschaften zu einem Objekt hinzuzufügen, bevor Sie sie anzeigen und die Spaltenüberschriften in der Tabelle angeben. Verwenden Sie zum Hinzufügen einer berechneten Eigenschaft den Parameter "Eigenschaft " oder " GroupBy ". Weitere Informationen zu Hashtabellen finden Sie unter about_Hash_Tables (Informationen zu Hashtabellen).

Beispiele

Beispiel 1: PowerShell-Host formatieren

In diesem Beispiel werden Informationen zum Hostprogramm für PowerShell in einer Tabelle angezeigt.

Get-Host | Format-Table -AutoSize

Das Get-Host Cmdlet ruft System.Management.Automation.Internal.Host.InternalHost-Objekte ab, die den Host darstellen. Die Objekte werden an die Pipeline Format-Table gesendet und in einer Tabelle angezeigt. Der AutoSize-Parameter passt die Spaltenbreiten an, um die Abschneiden zu minimieren.

Beispiel 2: Formatieren von Prozessen durch BasePriority

In diesem Beispiel werden Prozesse in Gruppen angezeigt, die dieselbe BasePriority-Eigenschaft aufweisen.

Get-Process | Sort-Object -Property BasePriority | Format-Table -GroupBy BasePriority -Wrap

Das Get-Process Cmdlet ruft Objekte ab, die jeden Prozess auf dem Computer darstellen und sie an die Pipeline Sort-Objectsenden. Die Objekte werden in der Reihenfolge ihrer BasePriority-Eigenschaft sortiert.

Die sortierten Objekte werden an die Pipeline Format-Tablegesendet. Der GroupBy-Parameter angeordnet die Prozessdaten in Gruppen basierend auf dem Wert der BasePriority-Eigenschaft . Der Wrap-Parameter stellt sicher, dass Daten nicht abgeschnitten werden.

Beispiel 3: Formatieren von Prozessen nach Startdatum

In diesem Beispiel werden Informationen zu den Prozessen angezeigt, die auf dem Computer ausgeführt werden. Die Objekte werden sortiert und Format-Table verwendet eine Ansicht, um die Objekte nach dem Anfangsdatum zu gruppieren.

Get-Process | Sort-Object StartTime | Format-Table -View StartTime

Get-Process ruft die System.Diagnostics.Process-Objekte ab, die die prozesse darstellen, die auf dem Computer ausgeführt werden. Die Objekte werden an die Pipeline Sort-Objectgesendet und basierend auf der StartTime-Eigenschaft sortiert.

Die sortierten Objekte werden an die Pipeline Format-Tablegesendet. Der Ansichtsparameter gibt die StartTime-Ansicht an, die in der PowerShell-Datei für System.Diagnostics.Process-ObjekteDotNetTypes.format.ps1xml definiert ist. Die StartTime-Ansicht konvertiert jede Prozessstartzeit in ein kurzes Datum und gruppiert dann die Prozesse nach dem Startdatum.

Die DotNetTypes.format.ps1xml Datei enthält eine Prioritätsansicht für Prozesse. Sie können eigene format.ps1xml Dateien mit angepassten Ansichten erstellen.

Beispiel 4: Verwenden einer benutzerdefinierten Ansicht für die Tabellenausgabe

In diesem Beispiel zeigt eine benutzerdefinierte Ansicht den Inhalt eines Verzeichnisses an. In der benutzerdefinierten Ansicht wird der Tabellenausgabe für System.IO.DirectoryInfo und System.IO.FileInfo-Objekte, die vonGet-ChildItemsystem.IO.FileInfo erstellt wurden, die Erstellung hinzugefügt.

Die benutzerdefinierte Ansicht in diesem Beispiel wurde aus der in PowerShell-Quellcode definierten Ansicht erstellt. Weitere Informationen zu Ansichten und dem Code, der zum Erstellen der Ansicht dieses Beispiels verwendet wird, finden Sie unter 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-ChildItemruft den Inhalt des aktuellen Verzeichnisses ab. C:\Test Die Objekte "System.IO.DirectoryInfo " und "System.IO.FileInfo " werden in der Pipeline gesendet. Format-Table verwendet den View-Parameter , um die benutzerdefinierte Ansicht mygciview anzugeben, die die CreationTime-Spalte enthält.

Die Standardausgabe Format-Table für Get-ChildItem enthält keine CreationTime-Spalte .

Beispiel 5: Verwenden von Eigenschaften für die Tabellenausgabe

In diesem Beispiel wird der Eigenschaftsparameter verwendet, um alle Dienste des Computers in einer zweispaltigen Tabelle anzuzeigen, in der die Eigenschaften Name und AbhängigServices angezeigt werden.

Get-Service | Format-Table -Property Name, DependentServices

Get-Service ruft alle Dienste auf dem Computer ab und sendet die System.ServiceProcess.ServiceController-Objekte nach unten. Format-Table verwendet den Eigenschaftsparameter , um anzugeben, dass die Eigenschaften "Name " und " AbhängigServices " in der Tabelle angezeigt werden.

Name und AbhängigServices sind zwei der Eigenschaften des Objekttyps. So zeigen Sie alle Eigenschaften an: Get-Service | Get-Member -MemberType Properties.

Beispiel 6: Formatieren eines Prozesses und Berechnen der Laufzeit

In diesem Beispiel wird eine Tabelle mit dem Prozessnamen und der Gesamtlaufzeit für die Notizpadprozesse des lokalen Computers angezeigt. Die Gesamtausführungszeit wird durch Subtrahieren der Startzeit der einzelnen Prozesses von der aktuellen Zeit berechnet.

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 ruft alle Notizpadprozesse des lokalen Computers ab und sendet die Objekte in der Pipeline. Format-Tablezeigt eine Tabelle mit zwei Spalten an: ProcessName, eine Eigenschaft und TotalRunningTime, eine Get-Process berechnete Eigenschaft.

Die TotalRunningTime-Eigenschaft wird durch eine Hashtabelle mit zwei Schlüsseln ,Bezeichnung und Ausdruck angegeben. Der Bezeichnungsschlüssel gibt den Eigenschaftennamen an. Der Ausdrucksschlüssel gibt die Berechnung an. Der Ausdruck ruft die StartTime-Eigenschaft jedes Prozessobjekts ab und subtrahiert sie vom Ergebnis eines Get-Date Befehls, der das aktuelle Datum und die aktuelle Uhrzeit abruft.

Beispiel 7: Formatieren von Editorprozessen

In diesem Beispiel wird Get-CimInstance verwendet, um die Laufzeit für alle Notizpadprozesse auf dem lokalen Computer abzurufen. Sie können mit dem ComputerName-Parameter Informationen Get-CimInstance aus Remotecomputern abrufen.

$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 ruft Instanzen der WMI-Win32_Process-Klasse ab, die alle Prozesse des lokalen Computers mit dem Namen notepad.exebeschreibt. Die Prozessobjekte werden in der $Processes Variable gespeichert.

Die Prozessobjekte in der $Processes Variable werden an die Pipeline Format-Tablegesendet, an die die ProcessName-Eigenschaft und eine neue berechnete Eigenschaft angezeigt wird.

Der Befehl weist den Namen der neuen berechneten Eigenschaft, Gesamtlaufzeit, dem Bezeichnungsschlüssel zu. Der Skriptblock des Ausdrucksschlüssels berechnet, wie lange der Prozess ausgeführt wurde, indem die Erstellungsdatum der Prozesse vom aktuellen Datum subtrahiert wird. Das Get-Date Cmdlet ruft das aktuelle Datum ab. Das Erstellungsdatum wird vom aktuellen Datum subtrahiert. Das Ergebnis ist der Wert der Gesamtlaufzeit.

Beispiel 8: Problembehandlung bei Formatfehlern

Die folgenden Beispiele zeigen die Ergebnisse des Hinzufügens der DisplayError- oder ShowError-Parameter mit einem Ausdruck.

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 ".

Parameter

-AutoSize

Gibt an, dass das Cmdlet die Spaltengröße und die Anzahl der Spalten basierend auf der Breite der Daten angepasst. Standardmäßig werden die Spaltengröße und die Anzahl von der Ansicht bestimmt.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DisplayError

Gibt an, dass das Cmdlet Fehler in der Befehlszeile anzeigt. Dieser Parameter kann als Debughilfe verwendet werden, wenn Sie Ausdrücke in einem Format-Table Befehl formatieren und die Ausdrücke beheben müssen.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Expand

Gibt das Format des Auflistungsobjekts und die Objekte in der Auflistung an. Dieser Parameter ist so konzipiert, dass Objekte formatiert werden, die die ICollection -Schnittstelle (System.Collections) unterstützen. Der Standardwert ist "EnumOnly". Die zulässigen Werte für diesen Parameter sind wie folgt:

  • EnumOnly: Zeigt die Eigenschaften der Objekte in der Auflistung an.
  • CoreOnly: Zeigt die Eigenschaften des Auflistungsobjekts an.
  • Beides: Zeigt die Eigenschaften des Auflistungsobjekts und die Eigenschaften von Objekten in der Auflistung an.
Type:String
Accepted values:CoreOnly, EnumOnly, Both
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Gibt an, dass das Cmdlet das Cmdlet angibt, um alle Fehlerinformationen anzuzeigen. Verwenden Sie den Parameter "DisplayError " oder "ShowError ". Wenn ein Fehlerobjekt in die Fehler- oder Anzeigedatenströme geschrieben wird, werden standardmäßig nur einige der Fehlerinformationen angezeigt.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-GroupBy

Gibt die sortierte Ausgabe in separaten Tabellen basierend auf einem Eigenschaftswert an. Sie können beispielsweise GroupBy verwenden, um Dienste in separaten Tabellen basierend auf ihrem Status auflisten.

Geben Sie einen Ausdruck oder eine Eigenschaft ein. Der GroupBy-Parameter erwartet, dass die Objekte sortiert werden. Verwenden Sie das Cmdlet, bevor Format-Table Sie die Sort-Object Objekte gruppieren.

Der Wert des GroupBy-Parameters kann eine neue berechnete Eigenschaft sein. Die berechnete Eigenschaft kann ein Skriptblock oder eine Hashtabelle sein. Gültige Schlüsselwertpaare sind:

  • Name (oder Bezeichnung) - <string>
  • Ausdruck - <string> oder <script block>
  • FormatString - <string>

Weitere Informationen finden Sie unter about_Calculated_Properties.

Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HideTableHeaders

Lässt die Spaltenüberschriften in der Tabelle aus.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Gibt die zu formatierenden Objekte an. Geben Sie eine Variable ein, die die Objekte enthält, oder geben Sie einen Befehl oder einen Ausdruck ein, mit dem die Objekte abgerufen werden.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Property

Gibt die in der Anzeige angezeigten Objekteigenschaften und die Reihenfolge an, in der sie angezeigt werden. Geben Sie einen oder mehrere Eigenschaftennamen ein, getrennt durch Kommas oder verwenden Sie eine Hashtabelle, um eine berechnete Eigenschaft anzuzeigen. Platzhalter sind zulässig.

Wenn Sie diesen Parameter auslassen, hängt die in der Anzeige angezeigten Eigenschaften von den Eigenschaften des ersten Objekts ab. Wenn beispielsweise das erste Objekt "PropertyA" und "PropertyB", aber nachfolgende Objekte "PropertyA", "PropertyB" und "PropertyC" enthalten, werden nur die Header "PropertyA" und "PropertyB" angezeigt.

Der Eigenschaftsparameter ist optional. Sie können die Eigenschaften - und Ansichtsparameter nicht imselben Befehl verwenden.

Der Wert des Eigenschaftsparameters kann eine neue berechnete Eigenschaft sein. Die berechnete Eigenschaft kann ein Skriptblock oder eine Hashtabelle sein. Gültige Schlüsselwertpaare sind:

  • Name (oder Bezeichnung) <string>
  • Ausdruck - <string> oder <script block>
  • FormatString - <string>
  • Breite - <int32> muss größer sein als 0
  • Ausrichtung – Wert kann Left, oder CenterRight

Weitere Informationen finden Sie unter about_Calculated_Properties.

Type:Object[]
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-RepeatHeader

Wiederholt die Anzeige der Kopfzeile einer Tabelle nach jedem Bildschirm voll. Die wiederholte Kopfzeile ist nützlich, wenn die Ausgabe an einen Pager wie less z. B. oder more eine Seitenausgabe mit einer Sprachausgabe weitergeleitet wird.

Dieser Parameter wurde in PowerShell 6.2 hinzugefügt.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ShowError

Dieser Parameter sendet Fehler über die Pipeline. Dieser Parameter kann als Debughilfe verwendet werden, wenn Sie Ausdrücke in einem Format-Table Befehl formatieren und die Ausdrücke beheben müssen.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-View

Ab PowerShell 6 werden die Standardansichten im PowerShell-Quellcode C# definiert. Die *.format.ps1xml Dateien aus PowerShell 5.1 und früheren Versionen sind in PowerShell 6 und höher nicht vorhanden.

Mit dem Parameter "Ansicht " können Sie ein alternatives Format oder eine benutzerdefinierte Ansicht für die Tabelle angeben. Sie können die Standardansichten von PowerShell verwenden oder benutzerdefinierte Ansichten erstellen. Weitere Informationen zum Erstellen einer benutzerdefinierten Ansicht finden Sie unter about_Format.ps1xml.

Die alternativen und benutzerdefinierten Ansichten für den Ansichtsparameter müssen das Tabellenformat verwenden, andernfalls Format-Table tritt ein Fehler auf. Wenn die alternative Ansicht eine Liste ist, verwenden Sie das Format-List Cmdlet. Wenn die alternative Ansicht keine Liste oder eine Tabelle ist, verwenden Sie das Format-Custom Cmdlet.

Sie können die Eigenschaften - und Ansichtsparameter nicht imselben Befehl verwenden.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Wrap

Zeigt Text an, der die Spaltenbreite in der nächsten Zeile überschreitet. Standardmäßig wird Text, der die Spaltenbreite überschreitet, abgeschnitten.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Eingaben

PSObject

Sie können jedes Objekt nach unten in der Pipeline senden.Format-Table

Ausgaben

Microsoft.PowerShell.Commands.Internal.Format

Format-Table gibt Formatobjekte zurück, die die Tabelle darstellen.