Format-Table
Formatiert die Ausgabe als Tabelle.
Syntax
Format-Table [[-Property] <Object[]>] [-AutoSize] [-DisplayError] [-Expand <string>] [-Force] [-GroupBy <Object>] [-HideTableHeaders] [-InputObject <psobject>] [-ShowError] [-View <string>] [-Wrap] [<CommonParameters>]
Beschreibung
Mit dem Cmdlet "Format-Table" wird die Ausgabe eines Befehls als Tabelle formatiert, wobei die ausgewählten Eigenschaften des Objekts in jeweils einer Spalte dargestellt werden. Der Objekttyp bestimmt das Standardlayout und die Standardeigenschaften, die in den einzelnen Spalten angezeigt werden. Sie können jedoch mit dem Property-Parameter die Eigenschaften auswählen, die angezeigt werden sollen.
Sie können auch eine Hashtabelle verwenden, um einem Objekt berechnete Eigenschaften hinzuzufügen, bevor es angezeigt wird, und die Spaltenüberschriften in der Tabelle anzugeben. Um eine berechnete Eigenschaft hinzuzufügen, verwenden Sie den Property-Parameter oder den GroupBy-Parameter.
Parameter
-AutoSize
Passt Größe und Anzahl der Spalten entsprechend der Länge der Daten an. Größe und Anzahl der Spalten werden standardmäßig durch die Ansicht bestimmt.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-DisplayError
Zeigt Fehler in der Befehlszeile an.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Expand <string>
Formatiert das Auflistungsobjekt sowie die Objekte in der Auflistung. Mit diesem Parameter werden Objekte formatiert, die die ICollection-Schnittstelle (System.Collections) unterstützen. Der Standardwert ist "EnumOnly".
Gültige Werte:
– EnumOnly: Zeigt die Eigenschaften der Objekte in der Auflistung an.
– CoreOnly: Zeigt die Eigenschaften des Auflistungsobjekts an.
– Both: Zeigt die Eigenschaften des Auflistungsobjekts und die Eigenschaften der Objekte in der Auflistung an.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Force
Weist das Cmdlet an, alle Fehlerinformationen anzuzeigen. Wird mit dem DisplayError-Parameter oder dem ShowError-Parameter verwendet. Wenn ein Fehlerobjekt in die Fehler- oder Anzeigestreams geschrieben wird, werden standardmäßig nur einige der Fehlerinformationen angezeigt.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-GroupBy <Object>
Ordnet sortierte Ausgaben auf Grundlage eines Eigenschaftenwerts in separaten Tabellen an. Beispielsweise können Sie mit GroupBy Dienste auf Grundlage ihres Status in separaten Tabellen anordnen.
Geben Sie einen Ausdruck oder eine Eigenschaft der Ausgabe ein. Die Ausgabe muss sortiert werden, bevor Sie sie an Format-Table senden.
Bei dem Wert des GroupBy-Parameters kann es sich um eine neu berechnete Eigenschaft handeln. Verwenden Sie zum Erstellen einer berechneten Eigenschaft eine Hashtabelle. Gültige Schlüssel sind:
– Name (oder Label) <Zeichenfolge>
– Expression <Zeichenfolge> oder <Skriptblock>
– FormatString <Zeichenfolge>
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-HideTableHeaders
Lässt die Spaltenüberschriften der Tabelle aus.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-InputObject <psobject>
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.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
true (ByValue) |
Platzhalterzeichen akzeptieren? |
false |
-Property <Object[]>
Gibt die Objekteigenschaften an, die angezeigt werden, sowie die Reihenfolge ihrer Anzeige. Geben Sie einen oder mehrere Eigenschaftennamen (durch Trennzeichen getrennt) ein, oder zeigen Sie mithilfe einer Hashtabelle eine berechnete Eigenschaft an. Platzhalter sind zulässig.
Wenn Sie diesen Parameter auslassen, hängen die angezeigten Eigenschaften vom angezeigten Objekt ab. Der Parametername ("Property") ist optional. Sie können den Property-Parameter nicht zusammen mit dem View-Parameter in einem Befehl verwenden.
Bei dem Wert des Property-Parameters kann es sich um eine neu berechnete Eigenschaft handeln. Verwenden Sie zum Erstellen einer berechneten Eigenschaft eine Hashtabelle. Gültige Schlüssel sind:
– Name (oder Label) <Zeichenfolge>
– Expression <Zeichenfolge> oder <Skriptblock>
– FormatString <Zeichenfolge>
– Width <int32>
– Alignment (Wert kann "Left", "Center" oder "Right" lauten)
Erforderlich? |
false |
Position? |
1 |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-ShowError
Übergibt Fehler über die Pipeline.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-View <string>
Gibt den Namen eines alternativen Tabellenformats bzw. einer alternativen Tabellenansicht an. Sie können den Property-Parameter nicht zusammen mit dem View-Parameter in einem Befehl verwenden.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Wrap
Zeigt den Text, der die Spaltenbreite überschreitet, in der nächsten Zeile an. Standardmäßig wird Text, der die Spaltenbreite überschreitet, abgeschnitten.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
<CommonParameters>
Dieses Cmdlet unterstützt die folgenden allgemeinen Parameter: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer und -OutVariable. Weitere Informationen finden Sie unter about_Commonparameters.
Eingaben und Ausgaben
Der Eingabetyp ist der Typ der Objekte, die über die Pipeline an das Cmdlet übergeben werden können. Der Rückgabetyp ist der Typ der Objekte, die das Cmdlet zurückgibt.
Eingaben |
System.Management.Automation.PSObject Sie können jedes Objekt über die Pipeline an Format-Table übergeben. |
Ausgaben |
Microsoft.PowerShell.Commands.Internal.Format Format-Table gibt Formatobjekte zurück, die die Tabelle darstellen. |
Hinweise
Sie können auch über den integrierten Alias "FT" auf Format-Table verweisen. Weitere Informationen finden Sie unter "about_Aliases".
Für den GroupBy-Parameter wird vorausgesetzt, dass die Objekte sortiert sind. Bevor Sie die Objekte mit Format-Custom gruppieren, sortieren Sie sie mit Sort-Object.
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 Windows PowerShell-Verzeichnis definierten Ansichten verwenden oder eigene Ansichten in neuen PS1XML-Dateien erstellen und sie mit dem Cmdlet "Update-FormatData" in Windows PowerShell einfügen.
Die alternative Ansicht für den View-Parameter muss als Tabelle formatiert werden. Andernfalls verursacht der Befehl einen Fehler. Wenn die alternative Ansicht eine Liste ist, verwenden Sie Format-List. Wenn die alternative Ansicht weder eine Liste noch eine Tabelle ist, verwenden Sie Format-Custom.
Beispiel 1
C:\PS>get-pssnapin | format-table -auto
Beschreibung
-----------
Mit diesem Befehl werden Informationen über Windows PowerShell-Snap-Ins als Tabelle formatiert. Standardmäßig werden sie als Liste formatiert. Das Cmdlet "Get-PSSnapin" ruft Objekte ab, die die Snap-Ins darstellen. Der Pipelineoperator (|) übergibt das Objekt an den Befehl "Format-Table". Format-Table formatiert die Objekte in einer Tabelle. Der Autosize-Parameter passt die Spaltenbreite an, um möglichst wenig Inhalt abzuschneiden.
Beispiel 2
C:\PS>get-process | sort-object -property basepriority | format-table -groupby basepriority -wrap
Beschreibung
-----------
Mit diesem Befehl werden die Prozesse auf dem Computer in Gruppen mit derselben Basispriorität angezeigt.
Mit dem Cmdlet "Get-Process" werden Objekte abgerufen, die die einzelnen Prozesse auf dem Computer darstellen. Das Objekt wird mit dem Pipelineoperator (|) an das Cmdlet "Sort-Object" übergeben, das die Objekte entsprechend ihrer Basispriorität sortiert.
Ein weiterer Pipelineoperator übergibt die Ergebnisse an den Befehl "Format-Table". Der GroupBy-Parameter ordnet die Daten über die Prozesse nach dem Wert ihrer BasePriority-Eigenschaft in Gruppen an. Der Wrap-Parameter gewährleistet, dass keine Daten abgeschnitten werden.
Beispiel 3
C:\PS>get-process | sort-object starttime | format-table -view starttime
Beschreibung
-----------
Mit diesem Befehl werden Informationen über die Prozesse auf dem Computer nach dem Startdatum der Prozesse in Gruppen angezeigt. Mit dem Cmdlet "Get-Process" werden Objekte abgerufen, die die Prozesse auf dem Computer darstellen. Der Pipelineoperator (|) übergibt die Ausgabe von Get-Process an das Cmdlet "Sort-Object", das sie nach der StartTime-Eigenschaft sortiert. Mit einem weiteren Pipelineoperator werden die sortierten Ergebnisse an Format-Table übergeben.
Mithilfe des View-Parameters wird die StartTime-Ansicht ausgewählt, die in der Formatierungsdatei "DotNetTypes.format.ps1xml" für System.Diagnostics.Process-Objekte definiert ist, zu denen die von Get-Process zurückgegebenen Objekte zählen. In dieser Ansicht wird die "StartTime" des Prozesses in ein kurzes Datumsformat konvertiert, und dann werden die Prozesse nach Startdatum gruppiert.
Die Formatierungsdatei "DotNetTypes.format.ps1xml" enthält auch die Ansicht "Priority" für Prozesse, und Sie können eigene FORMAT.PS1XML-Dateien mit benutzerdefinierten Ansichten erstellen.
Beispiel 4
C:\PS>get-service | format-table -property Name, DependentServices
Beschreibung
-----------
Mit diesem Befehl werden alle Dienste auf dem Computer in einer Tabelle mit den beiden Spalten "Name" und "DependentServices" angezeigt. Der Befehl verwendet das Cmdlet "Get-Service", um alle Dienste auf dem Computer abzurufen. Mit dem Pipelineoperator (|) werden die Ergebnisse an das Cmdlet "Format-Table" übergeben, das die Ausgabe in einer Tabelle formatiert. Der Property-Parameter gibt die Eigenschaften an, die als Spalten in der Tabelle angezeigt werden. Der Name des Property-Parameters ist optional. Sie können ihn daher auslassen ("format-table name, dependentservices").
"Property" und "DependentServices" sind nur zwei der Eigenschaften von Dienstobjekten. Um alle Eigenschaften anzuzeigen, geben Sie "get-service | get-member" ein.
Beispiel 5
C:\PS>get-process notepad | format-table ProcessName, `
@{Label="TotalRunningTime"; Expression={(get-date) - $_.StartTime}}
Beschreibung
-----------
Mit diesem Befehl wird gezeigt, wie eine berechnete Eigenschaft in einer Tabelle verwendet wird. Mit dem Befehl wird eine Tabelle mit dem Prozessnamen und der Gesamtausführungszeit aller Editor-Prozesse auf dem lokalen Computer angezeigt. Die Gesamtausführungszeit wird berechnet, indem die Startzeit jedes Prozesses von der aktuellen Uhrzeit subtrahiert wird.
In dem Befehl werden alle Prozesse mit dem Namen "Notepad" auf dem lokalen Computer mit dem Cmdlet "Get-Process" abgerufen. Der Pipelineoperator (|) sendet die Ergebnisse an Format-Table, das eine Tabelle mit zwei Spalten anzeigt: "ProcessName", einer Standardeigenschaft von Prozessen, und "TotalRunningTime", einer berechneten Eigenschaft.
Die TotalRunningTime-Eigenschaft wird von einer Hashtabelle mit den beiden Schlüsseln "Label" und "Expression" angegeben. Dem Schlüssel "Label" wird der Name der Eigenschaft zugewiesen. Dem Schlüssel "Expression" wird die Berechnung zugewiesen. Mit dem Ausdruck wird die StartTime-Eigenschaft jedes Prozessobjekts abgerufen und vom Ergebnis des Befehls "Get-Date" subtrahiert, der das aktuelle Datum (und die aktuelle Uhrzeit) abruft.
Beispiel 6
C:\PS>$processes = get-wmiobject -ComputerName Server01 win32_process -filter "name='notepad.exe'"
C:\PS> $processes | format-table ProcessName, @{ Label = "Total Running Time"; `
Expression={(get-date) - $_.ConvertToDateTime($_.CreationDate)}}
Beschreibung
-----------
Diese Befehle ähneln dem vorherigen Befehl, mit der Ausnahme, dass sie das Cmdlet "Get-WmiObject" und die Win32_Process-Klasse zum Anzeigen von Informationen über Editor-Prozesse auf einem Remotecomputer verwenden.
Im ersten Befehl werden Instanzen der Win32_Process-Klasse der Windows-Verwaltungsinstrumentation, die alle Prozesse auf dem Computer "Server01" mit dem Namen "Notepad.exe" beschreibt, mit dem Cmdlet "Get-WmiObject" abgerufen. Mit dem Befehl werden die Prozessinformationen in der Variablen "$processes" gespeichert.
Im zweiten Befehl werden mit dem Pipelineoperator (|) die Prozessinformationen in der Variablen "$processes" an das Cmdlet "Format-Table" übergeben, das den "ProcessName" jedes Prozesses gemeinsam mit einer neuen berechneten Eigenschaft anzeigt.
Dem Schlüssel "Label" wird der Name der neuen berechneten Eigenschaft "Total Running Time" zugewiesen. Der dem Schlüssel "Expression" zugewiesene Skriptblock berechnet die bisherige Ausführungsdauer des Prozesses durch Subtraktion des Erstellungsdatums des Prozesses vom aktuellen Datum. Mit dem Cmdlet "Get-Date" wird das aktuelle Datum abgerufen. Die ConvertToDateTime-Methode konvertiert die CreationDate-Eigenschaft des Win32_Process-Objekts von einem WMI-CIM_DATETIME-Objekt in ein Microsoft .NET Framework-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 von "Total Running Time".
Die Graviszeichen (`) sind Zeilenfortsetzungszeichen.