Freigeben über


Format-Table

Formatiert die Ausgabe als Tabelle.

Syntax

Default (Standard)

Format-Table
    [[-Property] <Object[]>]
    [-AutoSize]
    [-HideTableHeaders]
    [-Wrap]
    [-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 jedoch den Parameter Property verwenden, um die anzuzeigenden Eigenschaften auszuwählen.

Sie können auch eine Hashtabelle verwenden, um berechnete Eigenschaften zu einem Objekt 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.

Beispiele

Beispiel 1: Formatieren von PowerShell-Host

Dieser Befehl zeigt Informationen zum Hostprogramm für PowerShell in einer Tabelle an. Standardmäßig sind sie in einer Liste formatiert.

Get-Host | Format-Table -AutoSize

Das Cmdlet Get-Host ruft Objekte ab, die den Host darstellen. Der Pipelineoperator (|) übergibt das Objekt an das Cmdlet Format-Table. Das cmdlet Format-Table formatiert die Objekte in einer Tabelle. Mit dem AutoSize-Parameter werden die Spaltenbreiten angepasst, um Abschneidungen zu minimieren.

Beispiel 2: Formatieren von Prozessen nach BasePriority

Mit diesem Befehl werden die Prozesse auf dem Computer in Gruppen mit derselben Basispriorität 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. 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 Cmdlet Format-Table. Der parameter GroupBy ordnet die Daten zu den Prozessen in Gruppen basierend auf dem Wert ihrer BasePriority-Eigenschaft an. Der parameter Wrap stellt sicher, dass Daten nicht abgeschnitten werden.

Beispiel 3: Formatieren von Prozessen nach Startdatum

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

Mit diesem Befehl werden Informationen zu den Prozessen auf dem Computer in der Gruppe basierend auf dem Startdatum des Prozesses angezeigt. 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 Cmdlet Sort-Object, das sie basierend auf der StartTime-Eigenschaft sortiert. Ein anderer Pipelineoperator sendet die sortierten Ergebnisse an Format-Table.

Der parameter View wird verwendet, um die StartTime Ansicht auszuwählen, die in der datei DotNetTypes.format.ps1xml für System.Diagnostics.Process--Objekte definiert ist, z. B. die von Get-Processzurückgegebenen Objekte. In dieser Ansicht werden die StartTime- des Prozesses in ein kurzes Datum konvertiert und dann die Prozesse nach Startdatum gruppiert.

Die datei DotNetTypes.format.ps1xml enthält auch eine Priority ansicht für Prozesse. Sie können eigene format.ps1xml-Dateien mit angepassten 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 Name und DependentServices-angezeigt. Das Cmdlet Get-Service ruft alle Dienste auf dem Computer ab. Der Pipelineoperator (|) sendet die Ergebnisse an das Cmdlet Format-Table, 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. Geben Sie Get-Service | Get-Member -MemberType Propertiesein, um alle Eigenschaften anzuzeigen.

Beispiel 5: Formatieren eines Prozesses und Berechnen der Laufzeit

Dieser Befehl zeigt, wie sie eine berechnete Eigenschaft in einer Tabelle verwenden.

Get-Process Notepad | Format-Table ProcessName,
   @{Label="TotalRunningTime"; Expression={(Get-Date) - $_.StartTime}}

Der Befehl zeigt eine Tabelle mit dem Prozessnamen und der Gesamtlaufzeit aller Editorprozesse auf dem lokalen Computer an. Die Gesamtlaufzeit wird berechnet, indem die Startzeit jedes Prozesses von der aktuellen Zeit subtrahiert wird.

Der Befehl verwendet das Cmdlet Get-Process, um alle Prozesse namens Notepad auf dem lokalen Computer abzurufen. Der Pipelineoperator (|) sendet die Ergebnisse an Format-Table, wodurch eine Tabelle mit zwei Spalten angezeigt wird: ProcessName, eine Standardeigenschaft von Prozessen und TotalRunningTime, eine berechnete Eigenschaft.

Die TotalRunningTime--Eigenschaft wird durch eine Hashtabelle mit zwei Schlüsseln angegeben, Label und Expression. Der Name der Eigenschaft wird dem schlüssel Label zugewiesen. Die Berechnung wird dem schlüssel Expression 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 cmdlet Get-WmiObject 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 Cmdlet Get-WmiObject zum Abrufen von Instanzen der WMI-Win32_Process Klasse, die alle Prozesse auf dem Server01-Computer beschreibt, die Notepad.exebenannt sind. Der Befehl speichert die Prozessinformationen in der variablen $Processes.

Der zweite Befehl verwendet einen Pipelineoperator (|), um die Prozessinformationen in der $Processes Variablen an das Cmdlet Format-Table zu senden, der die ProcessName- und eine neue berechnete Eigenschaft anzeigt.

Der Befehl weist der Bezeichnung Schlüssel den Namen der neuen berechneten Eigenschaft "Total Running Time" zu. Der Skriptblock, der dem Ausdruck Schlüssels zugewiesen ist, berechnet, wie lange der Prozess ausgeführt wurde, indem das Erstellungsdatum des Prozesses vom aktuellen Datum subtrahiert wird. Das Cmdlet Get-Date ruft das aktuelle Datum ab. Die ConvertToDateTime--Methode konvertiert die CreationDate -Eigenschaft des Win32_Process -Objekts aus einem WMI-CIM_DATETIME -Objekt in ein .NET DateTime -Objekt, das mit der Ausgabe von Get-Dateverglichen werden kann. Anschließend wird das konvertierte Erstellungsdatum vom aktuellen Datum subtrahiert. Das Ergebnis ist der Wert Gesamtlaufzeit.

Beispiel 7: Problembehandlung bei Formatfehlern

Die folgenden Beispiele zeigen die Ergebnisse, wenn Sie die Parameter DisplayError oder ShowError mit einem Ausdruck hinzufügen.

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 -zahl durch die Ansicht bestimmt.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-DisplayError

Gibt an, dass das Cmdlet Fehler in der Befehlszeile anzeigt. Dieser Parameter wird selten verwendet, kann aber als Debugginghilfe verwendet werden, wenn Sie Ausdrücke in einem Format-Table Befehl formatieren, und die Ausdrücke scheinen nicht zu funktionieren.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Expand

Gibt das Format des Auflistungsobjekts sowie die Objekte in der Auflistung an. Dieser Parameter wurde entwickelt, um Objekte zu formatieren, die die ICollection-Schnittstelle (System.Collections) unterstützen. Der Standardwert ist EnumOnly. Die zulässigen Werte für diesen Parameter sind:

  • EnumOnly: Zeigt die Eigenschaften der Objekte in der Auflistung an.
  • CoreOnly: Zeigt die Eigenschaften des Sammlungsobjekts an.
  • Beides: Zeigt die Eigenschaften des Auflistungsobjekts und die Eigenschaften von Objekten in der Auflistung an.

Parametereigenschaften

Typ:String
Standardwert:None
Zulässige Werte:CoreOnly, EnumOnly, Both
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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 der Ausgabe ein. Die Ausgabe muss sortiert werden, bevor Sie sie an Format-Tablesenden.

Der Wert des parameters GroupBy kann eine neue berechnete Eigenschaft sein. Verwenden Sie zum Erstellen einer berechneten Eigenschaft eine Hashtabelle. Gültige Schlüssel sind:

  • Name (oder Bezeichnung) <Zeichenfolge>
  • Ausdruck <Zeichenfolge> oder <Skriptblocks>
  • FormatString-<Zeichenfolgen->

Parametereigenschaften

Typ:Object
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-HideTableHeaders

Weggelassen die Spaltenüberschriften aus der Tabelle.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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 ermittelt.

Parametereigenschaften

Typ:PSObject
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Property

Legt die Objekteigenschaften fest, die in der Anzeige erscheinen, sowie die Reihenfolge ihres Erscheinens. Geben Sie einen oder mehrere Eigenschaftsnamen (durch Kommas getrennt) ein, 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- hat, nachfolgende Objekte jedoch PropertyA-haben, PropertyB- und PropertyC nur PropertyA und PropertyB Kopfzeilen angezeigt werden.

Der Parametername 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. Verwenden Sie zum Erstellen einer berechneten Eigenschaft eine Hashtabelle. Gültige Schlüssel sind:

  • Name (oder Bezeichnung) <Zeichenfolge>
  • Ausdruck <Zeichenfolge> oder <Skriptblocks>
  • FormatString-<Zeichenfolgen->
  • Breite <int32->
  • Ausrichtung (Wert kann "Left", "Center" oder "Right") sein.

Parametereigenschaften

Typ:

Object[]

Standardwert:None
Unterstützt Platzhalter:True
Nicht anzeigen:False

Parametersätze

(All)
Position:0
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-ShowError

Sendet Fehler über die Pipeline. Dieser Parameter wird selten verwendet, kann aber als Debugginghilfe verwendet werden, wenn Sie Ausdrücke in einem Format-Table Befehl formatieren, und die Ausdrücke scheinen nicht zu funktionieren.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-View

Gibt den Namen eines alternativen Tabellenformats oder einer anderen Ansicht an. Sie können die Parameter Property und View nicht im selben Befehl verwenden.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Wrap

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

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

CommonParameters

Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.

Eingaben

PSObject

Sie können jedes Objekt an Format-Tablepfeifen.

Ausgaben

Microsoft.PowerShell.Commands.Internal.Format

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

Hinweise

Der parameter GroupBy geht davon aus, dass die Objekte sortiert sind. Verwenden Sie das Cmdlet Sort-Object, bevor Sie Format-Table verwenden, um die Objekte zu gruppieren.

Mit dem Parameter View 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 cmdlet Update-FormatData verwenden, um sie in PowerShell einzuschließen. Die alternativen Ansichten für den Parameter View müssen das Tabellenformat verwenden, andernfalls schlägt der Befehl fehl. Wenn es sich bei der alternativen Ansicht um eine Liste handelt, verwenden Sie das Cmdlet Format-List. Wenn die alternative Ansicht weder eine Liste noch eine Tabelle ist, verwenden Sie das cmdlet Format-Custom.