Freigeben über


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-Processzurü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.exebeschreibt. 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-Dateverglichen 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-Tablesenden.

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

PSObject

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.