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 cmdlet Format-Table
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 Parameter Property verwenden, um die anzuzeigenden Eigenschaften auszuwählen.
PowerShell verwendet Standardformatierer, um zu definieren, wie Objekttypen angezeigt werden. Sie können .ps1xml
Dateien verwenden, 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 einem Objekt berechnete Eigenschaften hinzuzufügen, bevor Sie es anzeigen und die Spaltenüberschriften in der Tabelle angeben. Um eine berechnete Eigenschaft hinzuzufügen, verwenden Sie den Parameter Property oder GroupBy. Weitere Informationen zu Hashtabellen finden Sie unter about_Hash_Tables.
Beispiele
Beispiel 1: Formatieren von PowerShell-Host
In diesem Beispiel werden Informationen zum Hostprogramm für PowerShell in einer Tabelle angezeigt.
Get-Host | Format-Table -AutoSize
Das cmdlet Get-Host
ruft System.Management.Automation.Internal.Host.InternalHost Objekte ab, die den Host darstellen. Die Objekte werden an Format-Table
gesendet und in einer Tabelle angezeigt. Mit dem AutoSize Parameter werden die Spaltenbreiten angepasst, um die Abkürzung zu minimieren.
Beispiel 2: Formatieren von Prozessen nach BasePriority
In diesem Beispiel werden Prozesse in Gruppen mit demselben BasePriority-eigenschaft angezeigt.
Get-Process | Sort-Object -Property BasePriority | Format-Table -GroupBy BasePriority -Wrap
Das Cmdlet Get-Process
ruft Objekte ab, die jeden Prozess auf dem Computer darstellen, und sendet sie an Sort-Object
. Die Objekte werden in der Reihenfolge ihrer BasePriority-eigenschaft sortiert.
Die sortierten Objekte werden an Format-Table
an die Pipeline gesendet. Der parameter GroupBy ordnet die Prozessdaten basierend auf ihrem BasePriority Eigenschaftswert in Gruppen an. Der Parameter Wrap stellt sicher, dass Daten nicht abgeschnitten werden.
Beispiel 3: Formatieren von Prozessen nach Startdatum
In diesem Beispiel werden Informationen zu den auf dem Computer ausgeführten Prozessen angezeigt. Die Objekte werden sortiert, und Format-Table
eine Ansicht verwendet, um die Objekte nach ihrem 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 Sort-Object
an die Pipeline gesendet und basierend auf der StartTime--Eigenschaft sortiert.
Die sortierten Objekte werden an Format-Table
an die Pipeline gesendet. Der parameter View gibt die StartTime Ansicht an, die in der PowerShell-DotNetTypes.format.ps1xml
datei für System.Diagnostics.Process--Objekte definiert ist. Die ansicht StartTime konvertiert die einzelnen Prozesse in ein kurzes Datum und gruppiert die Prozesse dann 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. 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
erstellt wurden.
Die benutzerdefinierte Ansicht in diesem Beispiel wurde aus der ansicht erstellt, die im PowerShell-Quellcode definiert ist. Weitere Informationen zu Ansichten und dem Code zum Erstellen der Ansicht dieses Beispiels 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 C:\Test
ab. Die System.IO.DirectoryInfo und System.IO.FileInfo Objekte werden an die Pipeline gesendet.
Format-Table
verwendet den Parameter View, um die benutzerdefinierte Ansicht mygciview- anzugeben, die die spalte CreationTime enthält.
Die Standardausgabe Format-Table
für Get-ChildItem
enthält nicht die Spalte CreationTime.
Beispiel 5: Verwenden von Eigenschaften für die Tabellenausgabe
In diesem Beispiel wird der Parameter Property verwendet, um alle Dienste des Computers in einer zweispaltigen Tabelle anzuzeigen, in der die Eigenschaften Name und DependentServices-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 an die Pipeline.
Format-Table
verwendet den Parameter Property, 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 Editor Prozesse des lokalen Computers angezeigt. Die Gesamtlaufzeit wird berechnet, indem die Startzeit jedes Prozesses von der aktuellen Zeit subtrahiert wird.
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 den gesamten Editor des lokalen Computers Prozesse 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 angegeben, Label und Expression. Der schlüssel Label gibt den Eigenschaftennamen an. Der schlüssel Expression 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 Editor- Prozesse auf dem lokalen Computer abzurufen. Sie können Get-CimInstance
mit dem Parameter ComputerName verwenden, um Informationen von Remotecomputern abzurufen.
$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 variablen $Processes
werden an Format-Table
gesendet, wodurch die ProcessName-Eigenschaft und eine neue berechnete Eigenschaft Gesamtlaufzeitangezeigt wird.
Der Befehl weist dem Schlüssel Bezeichnung Bezeichnung den Namen der neuen berechneten Eigenschaft Gesamtlaufzeitzu. Der Skriptblock Ausdruck Schlüssel berechnet, wie lange der Prozess ausgeführt wurde, indem das Erstellungsdatum der Prozesse vom aktuellen Datum subtrahiert wird. Das Cmdlet Get-Date
ruft das aktuelle Datum ab. Das Erstellungsdatum wird vom aktuellen Datum subtrahiert. Das Ergebnis ist der Wert 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
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 -zahl durch die Ansicht bestimmt.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | 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 Probleme mit den Ausdrücken beheben müssen.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Expand
Gibt das Format des Auflistungsobjekts und der Objekte in der Auflistung an. Dieser Parameter wurde entwickelt, um Objekte zu formatieren, 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.
- Beide: Zeigt die Eigenschaften des Auflistungsobjekts und die Eigenschaften von Objekten in der Auflistung an.
Typ: | String |
Zulässige Werte: | CoreOnly, EnumOnly, Both |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Force
Gibt an, dass das Cmdlet das Cmdlet angibt, um alle Fehlerinformationen anzuzeigen. Wird mit dem Parameter DisplayError oder ShowError verwendet. Wenn ein Fehlerobjekt standardmäßig in den Fehler- oder Anzeigedatenstrom geschrieben wird, werden nur einige der Fehlerinformationen angezeigt.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-GroupBy
Gibt die sortierte Ausgabe in separaten Tabellen basierend auf einem Eigenschaftswert an. Sie können z. B. GroupBy- verwenden, um Dienste basierend auf ihrem Status in separaten Tabellen auflisten.
Geben Sie einen Ausdruck oder eine Eigenschaft ein. Der parameter GroupBy erwartet, dass die Objekte sortiert werden.
Verwenden Sie das Cmdlet Sort-Object
, bevor Sie Format-Table
verwenden, um die Objekte zu gruppieren.
Der Wert des parameters GroupBy 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.
Typ: | Object |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-HideTableHeaders
Weggelassen die Spaltenüberschriften aus der Tabelle.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-InputObject
Gibt die zu formatierenden Objekte an. Geben Sie eine Variable ein, die die Objekte enthält, oder geben Sie einen Befehl oder Ausdruck ein, der die Objekte abruft.
Typ: | PSObject |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Property
Gibt die Objekteigenschaften an, die in der Anzeige und in der Reihenfolge angezeigt werden, in der sie angezeigt werden. Geben Sie einen oder mehrere Eigenschaftsnamen ein, getrennt durch Kommas, oder verwenden Sie eine Hashtabelle, um eine berechnete Eigenschaft anzuzeigen. Wildcards sind zulässig.
Wenn Sie diesen Parameter weglassen, hängen die eigenschaften, die in der Anzeige angezeigt werden, von den Eigenschaften des ersten Objekts ab. Wenn das erste Objekt beispielsweise PropertyA- und PropertyB-, nachfolgende Objekte jedoch PropertyA-, PropertyB-und PropertyC-haben, werden nur die PropertyA- und PropertyB- Header angezeigt.
Der parameter Property ist optional. Sie können die Parameter Property und View nicht im selben Befehl verwenden.
Der Wert des Property-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>
- Breite -
<int32>
- muss größer sein als0
- Ausrichtung – Wert kann
Left
,Center
oderRight
Weitere Informationen finden Sie unter about_Calculated_Properties.
Typ: | Object[] |
Position: | 0 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | True |
-RepeatHeader
Wiederholt die Anzeige der Kopfzeile einer Tabelle nach jedem Vollbildbildschirm. Die wiederholte Kopfzeile ist nützlich, wenn die Ausgabe an einen Pager weitergeleitet wird, z. B. less
oder more
oder Paging mit einer Sprachausgabe.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | 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 Probleme mit den Ausdrücken beheben müssen.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-View
Ab PowerShell 6 werden die Standardansichten in PowerShell C#
Quellcode definiert. Die *.format.ps1xml
Dateien aus PowerShell 5.1 und früheren Versionen sind in PowerShell 6 und höheren Versionen 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 PowerShell-Standardansichten 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 parameter View müssen das Tabellenformat verwenden, andernfalls schlägt Format-Table
fehl. Wenn es sich bei der alternativen Ansicht um eine Liste handelt, verwenden Sie das Cmdlet Format-List
. Wenn die alternative Ansicht keine Liste oder Tabelle ist, verwenden Sie das cmdlet Format-Custom
.
Sie können die Parameter Property und View nicht im selben Befehl verwenden.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Wrap
Zeigt Text an, der die Spaltenbreite in der nächsten Zeile überschreitet. Standardmäßig wird Text, der die Spaltenbreite überschreitet, abgeschnitten.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
Sie können jedes Objekt an Format-Table
senden.
Ausgaben
Microsoft.PowerShell.Commands.Internal.Format
Format-Table
gibt Formatobjekte zurück, die die Tabelle darstellen.