• 22.11.2019
  • 5 Minuten zum Lesen
    • j
    • s
    • B
    • m

PowerShell verfügt über eine Reihe von Cmdlets, mit denen Sie steuern können, wie Eigenschaften Fürpartikelobjekte angezeigt werden. Die Namen aller Cmdlets beginnen mit dem Verb Format., Sie lassen Sie selectwhich Eigenschaften, die Sie anzeigen möchten.

Get-Command -Verb Format -Module Microsoft.PowerShell.Utility

– Dieser Artikel beschreibt die Format-Wide, Format-List und Format-Table cmdlets.

Jeder Objekttyp in PowerShell verfügt über Standardeigenschaften, die verwendet werden, wenn Sie nicht angeben, welche Eigenschaften angezeigt werden sollen. Jedes Cmdlet verwendet außerdem denselben Eigenschaftsparameter, um anzugeben, welche Eigenschaften angezeigt werden sollen., Da Format-Wide nur eine einzelne Eigenschaft anzeigt, nimmt sein Propertyparameter nur einen einzelnen Wert an, aber die Eigenschaftsparameter von Format-List und Format-Tableakzeptieren eine Liste von Eigenschaftsnamen.

In diesem Beispiel zeigt die Standardausgabe von Get-Process cmdlet, dass zwei Instanzen vonInternet Explorer ausgeführt werden.,

Get-Process -Name iexplore

Das Standardformat für Prozessobjekte zeigt die hier gezeigten Eigenschaften an:

 NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName ------ ----- ----- ------ -- -- ----------- 32 25.52 10.25 13.11 12808 1 iexplore 52 11.46 26.46 3.55 21748 1 iexplore

Mit Formatweite für Einzelelementausgabe

Das Cmdlet Format-Wide zeigt standardmäßig nur die Standardeigenschaft eines Objekts an., Die mit jedem Objekt verknüpften Informationen werden in einer einzigen Spalte angezeigt:

Get-Command -Verb Format | Format-Wide
Format-Custom Format-HexFormat-List Format-TableFormat-Wide

Sie können auch eine nicht standardmäßige Eigenschaft angeben:

Get-Command -Verb Format | Format-Wide -Property Noun
Custom HexList TableWide

Steuerung der formatweiten Anzeige mit Spalte

Mit der Format-Wide Cmdlet, Sie können jeweils nur eine einzelne Eigenschaft anzeigen. Dies macht es nützlich, große Listen in mehreren Spalten anzuzeigen.,

Get-Command -Verb Format | Format-Wide -Property Noun -Column 3
Custom Hex ListTable Wide

Verwenden der Formatliste für eine Listenansicht

Das Format-List Cmdlet zeigt ein Objekt in Form einer Auflistung an, wobei jede Eigenschaft beschriftetetetund in einer separaten Zeile angezeigt wird:

Get-Process -Name iexplore | Format-List
Id : 12808Handles : 578CPU : 13.140625SI : 1Name : iexploreId : 21748Handles : 641CPU : 3.59375SI : 1Name : iexplore

Sie können beliebig viele Eigenschaften angeben:

Get-Process -Name iexplore | Format-List -Property ProcessName,FileVersion,StartTime,Id

Detaillierte Informationen erhalten, indem Sie Format-List mit Platzhaltern

Mit dem Cmdlet Format-List können Sie einen Platzhalter als Wert seines Eigenschaftsparameters verwenden., Hier finden Sie detaillierte Informationen. Objekte enthalten häufig mehr Informationen als Sie benötigen, weshalb PowerShell standardmäßig nicht alle Eigenschaftswerte anzeigt. Um alle Eigenschaften eines Objekts anzuzeigen, verwenden Sie den Befehl Format-List -Property *. Der folgende Befehl generiert über 60 Zeilen Ausgabe für einen einzelnen Prozess:

Get-Process -Name iexplore | Format-List -Property *

Obwohl der Befehl Format-List nützlich ist, um Details anzuzeigen, ist eine einfachere Tabellenansicht oft nützlicher, wenn Sie einen Überblick über die Ausgabe haben möchtenDas enthält viele Elemente.,

Format-Tabelle für tabellarische Ausgabe verwenden

Wenn Sie das Cmdlet Format-Table ohne Eigenschaftsnamen verwenden, um die Ausgabe des BefehlsGet-Process zu formatieren, erhalten Sie genau die gleiche Ausgabe wie ohne Format cmdlet. Bydefault zeigt PowerShell Prozessobjekte in einem tabellarischen Format an.

Get-Service -Name win* | Format-Table

ormat-Table Output (AutoSize)

Obwohl eine Tabellenansicht für die Anzeige vieler Informationen nützlich ist, kann es schwierig sein, zu interpretiereninterpret, wenn die Anzeige für die Daten zu eng ist., Im vorherigen Beispiel ist die Ausgabe istruncated. Wenn Sie beim Ausführen des Befehls Format-Table den Parameter AutoSize angeben,berechnet PowerShell die Spaltenbreiten basierend auf den angezeigten tatsächlichen Daten. Dies macht die columnsreadable.

Get-Service -Name win* | Format-Table -AutoSize

Das Cmdlet Format-Table schneidet möglicherweise immer noch Daten ab, schneidet jedoch nur am Ende des Bildschirms ab. Eigenschaften, mit Ausnahme der zuletzt angezeigten, erhalten so viel Größe, wie sie für die korrekte Anzeige des langsamsten Datenelements benötigen.,

Get-Service -Name win* | Format-Table -Property Name,Status,StartType,DisplayName,DependentServices -AutoSize

Der Befehl Format-Table setzt voraus, dass Eigenschaften in der Reihenfolge ihrer Wichtigkeit aufgelistet werden. Es wird also versucht, die Eigenschaften am Anfang vollständig anzuzeigen. Wenn der Befehl Format-Table die Eigenschaften nicht anzeigen kann, werden einige Spalten aus der Anzeige entfernt. Sie können dieses Verhalten im vorherigen Beispiel derDependentServices-Eigenschaft sehen.

Wrapping Format-Tabellenausgabe in Spalten (Wrap)

Sie können lange Format-Table – Daten erzwingen, indem Sie den Wrapparameter verwenden., Die Verwendung des Wrap-Parameters kann nicht das tun, was Sie erwarten, da er verwendetdefault-Einstellungen, wenn Sie nicht auch AutoSize angeben:

Get-Service -Name win* | Format-Table -Property Name,Status,StartType,DisplayName,DependentServices -Wrap

Die Verwendung des Wrap-Parameters selbst verlangsamt die Verarbeitung nicht sehr. Die Verwendung von AutoSize zum Formatieren einer rekursiven Dateiliste einer großen Verzeichnisstruktur kann jedoch lange dauern und viel Speicher verbrauchen, bevor die ersten Ausgabeelemente angezeigt werden.

Wenn Sie sich keine Gedanken über das Laden des Systems machen, funktioniert AutoSize gut mit dem Parameter Wrap.,Die Anfangsspalten verwenden immer noch so viel Breite wie nötig, um Elemente in einer Zeile anzuzeigen, aber die finalcolumn wird bei Bedarf umbrochen.

Hinweis

Einige Spalten werden möglicherweise nicht angezeigt, wenn Sie zuerst die breitesten Spalten angeben. Geben Sie für beste Ergebnisse zuerst die kleinsten Datenelemente an.

Im folgenden Beispiel geben wir zuerst die breitesten Eigenschaften an.

Get-Process -Name iexplore | Format-Table -Wrap -AutoSize -Property FileVersion,Path,Name,Id

Auch beim Wrapping wird die letzte ID-Spalte weggelassen:

Organisieren der Tabellenausgabe (- GroupBy)

Ein weiterer nützlicher Parameter für die tabellarische Ausgabesteuerung ist GroupBy., Längere tabellarische Auflistungen inparticular kann schwer zu vergleichen sein. Der Parameter GroupBy gruppiert die Ausgabe basierend auf einem propertyvalue. Zum Beispiel können wir Dienste nach StartType gruppieren, um die Inspektion zu erleichtern, indem wir den Starttype-Wert aus der Eigenschaftsliste weglassen:

Get-Service -Name win* | Sort-Object StartType | Format-Table -GroupBy StartType