Format-Table
Formatiert die Ausgabe als Tabelle.
Syntax
Format-Table
[[-Property] <Object[]>]
[-AutoSize]
[-HideTableHeaders]
[-Wrap]
[-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 jedoch den Property-Parameter verwenden, um die anzuzeigenden Eigenschaften auszuwählen.
Außerdem können Sie eine Hashtabelle verwenden, um einem Objekt vor der Anzeige berechnete Eigenschaften hinzuzufügen und um die Spaltenüberschriften in der Tabelle anzugeben. Um eine berechnete Eigenschaft hinzuzufügen, verwenden Sie den Parameter Property oder GroupBy .
Beispiele
Beispiel 1: Formatieren des PowerShell-Hosts
Dieser Befehl zeigt Informationen zum Hostprogramm für PowerShell in einer Tabelle an. Standardmäßig werden die Informationen als Liste formatiert.
Get-Host | Format-Table -AutoSize
Das Get-Host
Cmdlet ruft Objekte ab, die den Host darstellen. Der Pipelineoperator (|) übergibt das -Objekt an das Format-Table
Cmdlet. Das Format-Table
Cmdlet formatiert die Objekte in einer Tabelle. Der AutoSize-Parameter passt die Spaltenbreite an, um die Abschneidung zu minimieren.
Beispiel 2: Formatieren von Prozessen nach BasePriority
Dieser Befehl zeigt die Prozesse auf dem Computer in Gruppen mit der gleichen Basispriorität an.
Get-Process | Sort-Object -Property basepriority | Format-Table -GroupBy basepriority -Wrap
Das Cmdlet Get-Process ruft Objekte ab, die die einzelnen Prozesse auf dem Computer darstellen. Der Pipelineoperator (|) übergibt das Objekt an das Cmdlet Sort-Object, das die Objekte in der Reihenfolge ihrer Basispriorität sortiert.
Ein anderer Pipelineoperator übergibt die Ergebnisse an das Format-Table
Cmdlet. Der GroupBy-Parameter ordnet die Daten zu den Prozessen basierend auf dem Wert ihrer BasePriority-Eigenschaft in Gruppen an. Der Wrap-Parameter stellt sicher, dass Daten nicht abgeschnitten werden.
Beispiel 3: Formatieren von Prozessen nach Startdatum
Get-Process | Sort-Object starttime | Format-Table -View starttime
Dieser Befehl gruppiert Informationen zu den Prozessen auf dem Computer basierend auf dem Startdatum des Prozesses. Es verwendet das Cmdlet Get-Process, um Objekte abzurufen, die die Prozesse auf dem Computer darstellen. Der Pipelineoperator (|) sendet die Ausgabe von Get-Process
an das Sort-Object
Cmdlet, das sie basierend auf der StartTime-Eigenschaft sortiert. Ein anderer Pipelineoperator sendet die sortierten Ergebnisse an Format-Table
.
Der View-Parameter wird verwendet, um die StartTime-Ansicht auszuwählen, die in der DotNetTypes.format.ps1xml
Datei für System.Diagnostics.Process-Objekte definiert ist, z. B. die von Get-Process
zurückgegebenen . Diese Ansicht konvertiert die Startzeit des Prozesses in ein kurzes Datum und gruppiert die Prozesse dann nach Startdatum.
Die DotNetTypes.format.ps1xml
Datei enthält auch eine Prioritätsansicht für Prozesse. Sie können Ihre eigenen format.ps1xml-Dateien mit benutzerdefinierten Ansichten erstellen.
Beispiel 4: Formatieren von Diensten
Get-Service | Format-Table -Property Name, DependentServices
Mit diesem Befehl werden alle Dienste auf dem Computer in einer Tabelle mit zwei Spalten angezeigt: Name und DependentServices. Das Get-Service
Cmdlet ruft alle Dienste auf dem Computer ab. Der Pipelineoperator (|) sendet die Ergebnisse an das Format-Table
Cmdlet, das die Ausgabe in einer Tabelle formatiert.
Der Parameter Property gibt die Eigenschaften an, die in der Tabelle als Spalten angezeigt werden. Der Name des Property-Parameters ist optional, sodass Sie ihn weglassen können, z. B Format-Table Name, DependentServices
. .
Name und DependentServices sind nur zwei der Eigenschaften von Dienstobjekten. Um alle Eigenschaften anzuzeigen, geben Sie ein Get-Service | Get-Member -MemberType Properties
.
Beispiel 5: Formatieren eines Prozesses und Berechnen der Laufzeit
Dieser Befehl veranschaulicht die Verwendung einer berechneten Eigenschaft in einer Tabelle.
Get-Process Notepad | Format-Table ProcessName,
@{Label="TotalRunningTime"; Expression={(Get-Date) - $_.StartTime}}
Der Befehl zeigt eine Tabelle mit dem Prozessnamen und der Gesamtausführungszeit aller Editor-Prozesse auf dem lokalen Computer an. Die Gesamtausführungszeit wird durch Subtrahieren der Startzeit der einzelnen Prozesses von der aktuellen Zeit berechnet.
Der Befehl verwendet das Get-Process
Cmdlet, um alle Prozesse mit dem Namen Editor auf dem lokalen Computer abzurufen.
Der Pipelineoperator (|) sendet die Ergebnisse an Format-Table
, der eine Tabelle mit zwei Spalten anzeigt: ProcessName, eine Standardeigenschaft von Prozessen, und TotalRunningTime, eine berechnete Eigenschaft.
Die TotalRunningTime-Eigenschaft wird durch eine Hashtabelle mit den beiden Schlüsseln Label und Expression angegeben. Der Name der Eigenschaft wird dem Label-Schlüssel zugewiesen. Die Berechnung wird der Expression-Taste zugewiesen. 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 6: Formatieren von Editorprozessen
Diese Befehle ähneln dem vorherigen Befehl, mit der Ausnahme, dass diese Befehle das Get-WmiObject
Cmdlet verwenden.
$Processes = Get-WmiObject -ComputerName "Server01" -Class win32_process -Filter "name='notepad.exe'"
$Processes | Format-Table ProcessName, @{ Label = "Total Running Time"; Expression={(Get-Date) - $_.ConvertToDateTime($_.CreationDate)}}
Der erste Befehl verwendet das Get-WmiObject
Cmdlet, um Instanzen der WMI-Win32_Process-Klasse abzurufen, die alle Prozesse auf dem Server01-Computer mit dem Namen Notepad.exe
beschreibt.
Der Befehl speichert die Prozessinformationen in der $Processes
Variablen.
Der zweite Befehl verwendet einen Pipelineoperator (|), um die Prozessinformationen in der $Processes
Variablen an das Format-Table
Cmdlet zu senden, das den ProcessName und eine neue berechnete Eigenschaft anzeigt.
Der Befehl weist dem Label-Schlüssel den Namen der neuen berechneten Eigenschaft "Gesamtlaufzeit" zu. Der Skriptblock, der dem Expression-Schlüssel zugewiesen ist, berechnet, wie lange der Prozess ausgeführt wird, indem das Erstellungsdatum des Prozesses vom aktuellen Datum subtrahiert wird. Das Get-Date
Cmdlet ruft das aktuelle Datum ab. Die ConvertToDateTime-Methode konvertiert die CreationDate-Eigenschaft des Win32_Process-Objekts von einem WMI-CIM_DATETIME-Objekt in ein .NET DateTime-Objekt , das mit der Ausgabe von Get-Date
verglichen werden kann. Anschließend wird das konvertierte Erstellungsdatum vom aktuellen Datum subtrahiert. Das Ergebnis ist der Wert der Gesamtlaufzeit.
Beispiel 7: Problembehandlung bei Formatfehlern
Die folgenden Beispiele zeigen die Ergebnisse des Hinzufügens der Parameter DisplayError oder ShowError mit einem Ausdruck.
PC /> Get-Date | Format-Table DayOfWeek,{ $_ / $null } -DisplayError
DayOfWeek $_ / $null
--------- ------------
Wednesday #ERR
PC /> Get-Date | Format-Table DayOfWeek,{ $_ / $null } -ShowError
DayOfWeek $_ / $null
--------- ------------
Wednesday
Failed to evaluate expression " $_ / $null ".
+ CategoryInfo : InvalidArgument: (10/30/2013 2:28:07 PM:PSObject) \[\], RuntimeException
+ FullyQualifiedErrorId : mshExpressionError
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: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DisplayError
Gibt an, dass das Cmdlet Fehler an der Befehlszeile anzeigt. Dieser Parameter wird selten verwendet, kann aber als Debughilfe verwendet werden, wenn Sie Ausdrücke in einem Format-Table
Befehl formatieren, und die Ausdrücke scheinen nicht zu funktionieren.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Expand
Gibt das Format des Auflistungsobjekts sowie die Objekte in der Auflistung an. Dieser Parameter dient zum Formatieren der Objekte, die die ICollection (System.Collections)-Schnittstelle unterstützen. Der Standardwert ist EnumOnly. Zulässige Werte für diesen Parameter:
- 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 anweisen wird, alle Fehlerinformationen anzuzeigen. Verwenden Sie mit dem 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: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-GroupBy
Gibt eine sortierte Ausgabe in separaten Tabellen basierend auf einem Eigenschaftswert an. Beispielsweise können Sie GroupBy verwenden, um Dienste basierend auf ihren status in separaten Tabellen aufzulisten.
Geben Sie einen Ausdruck oder eine Eigenschaft der Ausgabe ein. Die Ausgabe muss sortiert werden, bevor Sie sie an Format-Table
senden.
Der Wert des GroupBy-Parameters kann eine neue berechnete Eigenschaft sein. Zum Erstellen einer berechneten Eigenschaft verwenden Sie eine Hashtabelle. Gültige Schlüssel sind:
- Namenszeichenfolge (oder Bezeichnung) <>
- Ausdruckszeichenfolge <> oder <Skriptblock>
- FormatString-Zeichenfolge <>
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: | None |
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 Eigenschaftsnamen (durch Kommas getrennt) ein, oder verwenden Sie eine Hashtabelle zur Anzeige einer berechneten Eigenschaft. Platzhalter 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 z. B . PropertyA und PropertyB aufweist, aber nachfolgende Objekte propertyA, PropertyB und PropertyC nur PropertyA - und PropertyB-Header angezeigt werden.
Der Parametername Property ist optional. Sie können die Parameter Property und View nicht im gleichen Befehl verwenden.
Der Wert des Property-Parameters kann eine neue berechnete Eigenschaft sein. Zum Erstellen einer berechneten Eigenschaft verwenden Sie eine Hashtabelle. Gültige Schlüssel sind:
- Namenszeichenfolge (oder Bezeichnung) <>
- Ausdruckszeichenfolge <> oder <Skriptblock>
- FormatString-Zeichenfolge <>
- Breite <int32>
- Ausrichtung (Der Wert kann "Left", "Center" oder "Right" sein)
Type: | Object[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-ShowError
Sendet Fehler über die Pipeline. Dieser Parameter wird selten verwendet, kann aber als Debughilfe verwendet werden, wenn Sie Ausdrücke in einem Format-Table
Befehl formatieren und die Ausdrücke scheinbar nicht funktionieren.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-View
Gibt den Namen eines alternativen Tabellenformats oder einer alternativen Ansicht an. Sie können die Parameter Property und View 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: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Eingaben
Sie können jedes Objekt an übergeben Format-Table
.
Ausgaben
Microsoft.PowerShell.Commands.Internal.Format
Format-Table
gibt Formatobjekte zurück, die die Tabelle darstellen.
Hinweise
Der GroupBy-Parameter geht davon aus, dass die Objekte sortiert sind. Verwenden Sie das Sort-Object
Cmdlet, bevor Sie Format-Table
verwenden, um die Objekte zu gruppieren.
Mit dem View-Parameter können Sie ein alternatives Format für die Tabelle angeben. Sie können die in den *.format.PS1XML
Dateien im PowerShell-Verzeichnis definierten Ansichten verwenden oder eigene Ansichten in neuen PS1XML-Dateien erstellen und dann das Update-FormatData
Cmdlet verwenden, um sie in PowerShell einzuschließen. Die alternativen Ansichten für den View-Parameter müssen das Tabellenformat verwenden, andernfalls schlägt der Befehl fehl.
Wenn die alternative Ansicht eine Liste ist, verwenden Sie das Format-List
Cmdlet. Wenn die alternative Ansicht weder eine Liste noch eine Tabelle ist, verwenden Sie das Format-Custom
Cmdlet.