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 Angezeigt werden sollen.
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 Parameter "View ", 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 angezeigt wird, und um die Spaltenüberschriften in der Tabelle anzugeben. Verwenden Sie den Parameter "Property " oder "GroupBy" , um eine berechnete Eigenschaft hinzuzufügen. Weitere Informationen zu Hashtabellen finden Sie unter about_Hash_Tables (Informationen zu Hashtabellen).
Beispiele
Beispiel 1: Formatieren des PowerShell-Hosts
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 Parameter AutoSize passt die Spaltenbreiten an, um den Abschnitt zu minimieren.
Beispiel 2: Formatieren von Prozessen nach 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 diese an die Pipeline Sort-Object
senden. Die Objekte werden in der Reihenfolge ihrer BasePriority-Eigenschaft sortiert.
Die sortierten Objekte werden an die Pipeline Format-Table
gesendet. Der GroupBy-Parameter sortiert 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 Startdatum zu gruppieren.
Get-Process | Sort-Object StartTime | Format-Table -View StartTime
Get-Process
ruft die System.Diagnostics.Process-Objekte ab, die die auf dem Computer ausgeführten Prozesse darstellen. Die Objekte werden an die Pipeline Sort-Object
gesendet und basierend auf der StartTime-Eigenschaft sortiert.
Die sortierten Objekte werden an die Pipeline Format-Table
gesendet. Der Parameter "View " gibt die StartTime-Ansicht an, die in der PowerShell-Datei DotNetTypes.format.ps1xml
für System.Diagnostics.Process-Objekte definiert ist. In der StartTime-Ansicht werden die einzelnen Prozesse der Startzeit in ein kurzes Datum konvertiert und dann die Prozesse nach dem Startdatum gruppiert.
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. Die benutzerdefinierte Ansicht fügt die CreationTime-Spalte zur Tabellenausgabe für system.IO.DirectoryInfo und System.IO.FileInfo-Objekte hinzu, die von Get-ChildItem
.
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-ChildItem
ruft den Inhalt des aktuellen Verzeichnisses ab, C:\Test
. Die System.IO.DirectoryInfo - und System.IO.FileInfo-Objekte werden an die 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
"CreationTime" enthält nicht die Spalte "CreationTime ".
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, die die Eigenschaften "Name " und " DependentServices" anzeigt.
Get-Service | Format-Table -Property Name, DependentServices
Get-Service
ruft alle Dienste auf dem Computer ab und sendet die System.ServiceProcess.ServiceController-Objekte an die Pipeline. Format-Table
verwendet den Eigenschaftsparameter , um anzugeben, dass die Eigenschaften "Name " und " DependentServices " in der Tabelle angezeigt werden.
Name und DependentServices sind zwei 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 Editorprozesse 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 Editorprozesse des lokalen Computers ab und sendet die Objekte an die Pipeline. Format-Table
zeigt eine Tabelle mit zwei Spalten an: ProcessName, eine Get-Process
Eigenschaft und TotalRunningTime, eine 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 Get-CimInstance
wird die Laufzeit für alle Editorprozesse auf dem lokalen Computer abgerufen. Sie können Get-CimInstance
mit dem Parameter ComputerName Informationen von 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
Variablen gespeichert.
Die Prozessobjekte in der $Processes
Variablen werden an die Pipeline Format-Table
gesendet, an die die ProcessName-Eigenschaft und eine neue berechnete Eigenschaft angezeigt wird, Total Running Time.
Der Befehl weist dem Label-Schlüssel den Namen der neuen berechneten Eigenschaft " Total Running Time" zu. Der Skriptblock des Ausdrucksschlüssels berechnet, wie lange der Prozess ausgeführt wurde, indem der 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
In den folgenden Beispielen werden die Ergebnisse des Hinzufügens der Parameter "DisplayError " oder "ShowError " mit einem Ausdruck gezeigt.
Get-Date | Format-Table DayOfWeek,{ $_ / $null } -DisplayError
DayOfWeek $_ / $null
--------- ------------
Wednesday #ERR
Get-Date | Format-Table DayOfWeek,{ $_ / $null } -ShowError
DayOfWeek $_ / $null
--------- ------------
Wednesday
Failed to evaluate expression " $_ / $null ".
+ CategoryInfo : InvalidArgument: (11/27/2019 12:52:38:PSObject) [], RuntimeException
+ FullyQualifiedErrorId : PSPropertyExpressionError
Parameter
-AutoSize
Gibt an, dass das Cmdlet die Spaltengröße und die Anzahl der Spalten basierend auf der Breite der Daten anpasst. 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 Debugginghilfe verwendet werden, wenn Sie Ausdrücke in einem Format-Table
Befehl formatieren und die Ausdrücke behandeln 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 dient zum Formatieren von Objekten, die die ICollection (System.Collections)-Schnittstelle 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 leitet, 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 Sort-Object
Cmdlet, bevor Format-Table
Sie die 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ängen die eigenschaften, die in der Anzeige angezeigt werden, von den Eigenschaften des ersten Objekts ab. Wenn beispielsweise das erste Objekt "PropertyA" und "PropertyB", aber nachfolgende Objekte "PropertyA", "PropertyB" und "PropertyC" aufweisen, werden nur die Header "PropertyA" und "PropertyB" angezeigt.
Der Eigenschaftsparameter ist optional. Sie können die Parameter "Property " und "Ansicht " nicht im gleichen 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 als0
- Ausrichtung - Wert kann sein
Left
,Center
oderRight
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 jeder Vollbildansicht. Die wiederholte Kopfzeile ist nützlich, wenn die Ausgabe an einen Pager weitergeleitet wird, z less
. B. oder more
paging mit einer Bildschirmsprachausgabe.
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 Debugginghilfe verwendet werden, wenn Sie Ausdrücke in einem Format-Table
Befehl formatieren und die Ausdrücke behandeln 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 "View " können Sie ein alternatives Format oder eine benutzerdefinierte Ansicht für die Tabelle angeben. Sie können die Standard-PowerShell-Ansichten 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
schlägt ein Fehler fehl. Wenn die alternative Ansicht eine Liste ist, verwenden Sie das Format-List
Cmdlet. Wenn die alternative Ansicht keine Liste oder Tabelle ist, verwenden Sie das Format-Custom
Cmdlet.
Sie können die Parameter "Property " und "Ansicht " nicht im gleichen 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
Sie können ein beliebiges Objekt an die Pipeline senden.Format-Table
Ausgaben
Microsoft.PowerShell.Commands.Internal.Format
Format-Table
gibt Formatobjekte zurück, die die Tabelle darstellen.