• 11/22/2019
  • 5 minut do odczytu
    • j
    • s
    • b
    • m

PowerShell ma zestaw cmdletów, które pozwalają kontrolować, jak właściwości są wyświetlane dlaczęściowych obiektów. Nazwy wszystkich cmdletów zaczynają się od czasownika Format., Pozwalają wybrać, które właściwości chcesz pokazać.

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

Ten artykuł opisujeFormat-Wide,Format-List IFormat-Table cmdlety.

każdy typ obiektu w PowerShell ma domyślne właściwości, które są używane, gdy nie określa się, które właściwości mają być wyświetlane. Każdy cmdlet używa również tego samego parametru Właściwości, aby określić, które właściwości chcesz wyświetlić., Ponieważ Format-Wide pokazuje tylko jedną właściwość, jej Propertyparameter pobiera tylko jedną wartość, ale parametry właściwości Format-List I Format-Tableakceptują listę nazw właściwości.

w tym przykładzie domyślne wyjście Get-Process cmdlet pokazuje, że mamy uruchomione dwie instancje Internet Explorera.,

Get-Process -Name iexplore

domyślny format dla obiektów procesu wyświetla właściwości pokazane tutaj:

 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

używając formatu dla wyjścia pojedynczego elementu

Format-Wide cmdlet domyślnie wyświetla tylko domyślną właściwość obiekt., Informacje powiązane z każdym obiektem są wyświetlane w jednej kolumnie:

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

Możesz również określić domyślną właściwość:

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

Format kontrolny-wide display with column

with the Format-Wide cmdlet, you can only display a single property at a time. Dzięki temu jest przydatny do wyświetlania dużych list w wielu kolumnach.,

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

użycie Format-List do widoku listy

Format-List cmdlet wyświetla obiekt w formie listy, z każdą właściwością oznaczoną etykietą i wyświetlaną w osobnej linii:

iv id

Id : 12808Handles : 578CPU : 13.140625SI : 1Name : iexploreId : 21748Handles : 641CPU : 3.59375SI : 1Name : iexplore

możesz określić dowolną liczbę właściwości:

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

uzyskiwanie szczegółowych informacji za pomocą listy formatów z symbolami wieloznacznymi

Format-Listcmdlet pozwala na użycie symboli wieloznacznych jako wartości parametru właściwości., Wyświetla szczegółowe informacje. Często obiekty zawierają więcej informacji niż potrzebujesz, dlatego PowerShell domyślnie nie wyświetla wszystkich wartości właściwości. Aby wyświetlić wszystkie właściwości obiektu, użyj polecenia Format-List -Property *. Poniższe polecenie generuje ponad 60 linii wyjściowych dla jednego procesu:

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

chociaż polecenie Format-List jest przydatne do wyświetlania szczegółów, jeśli chcesz przegląd wyjścia, który zawiera wiele elementów, prostszy widok tabelaryczny jest często bardziej przydatny.,

Korzystanie z formatowania tabeli dla wyników tabelarycznych

jeśli użyjesz Format-Tablecmdlet bez nazw właściwości formatujących wyjścieGet-Process, otrzymasz dokładnie to samo wyjście, co bez Format cmdlet. Bydefault, PowerShell wyświetla obiekty procesu w formacie tabelarycznym.

Get-Service -Name win* | Format-Table

Ulepszanie formatu-wyjścia tabeli (AutoSize)

chociaż widok tabelaryczny jest przydatny do wyświetlania wielu informacji, może być trudno zinterpretować, jeśli wyświetlanie jest zbyt wąskie dla danych., W poprzednim przykładzie wyjście jest zablokowane. Jeśli podasz parametr AutoSize podczas uruchamiania polecenia Format-Table, PowerShell oblicza szerokości kolumn na podstawie rzeczywistych wyświetlanych danych. Dzięki temu kolumny są czytelne.

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

Format-Table cmdlet może nadal obcinać dane, ale obcina je tylko na końcu ekranu. Właściwości, inne niż ostatnie wyświetlane, mają tyle wielkości, ile są potrzebne do prawidłowego wyświetlenia ich najdłuższego elementu danych.,

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

polecenieFormat-Table zakłada, że właściwości są wymienione w kolejności ważności. Tak więc stara się w pełni wyświetlić właściwości najbliżej początku. Jeśli polecenie Format-Table nie może wyświetlić wszystkich właściwości, usuwa niektóre kolumny z wyświetlacza. Takie zachowanie można zobaczyć w poprzednim przykładzie właściwości dependentservices.

Format zawijania-wyjście tabeli w kolumnach (Zawijanie)

możesz wymusić zawijanie długich danychFormat-Table za pomocą Wrapparametru., Używanie parametru Wrap może nie robić tego, czego oczekujesz, ponieważ używa on ustawień domyślnych, jeśli nie podasz również AutoSize:

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

używanie parametru Wrap samo w sobie nie spowalnia przetwarzania. Jednak użycie AutoSize do sformatowania rekurencyjnej listy plików o dużej strukturze katalogów może zająć dużo czasu i zużywać dużo pamięci przed wyświetlaniem pierwszych pozycji wyjściowych.

Jeśli nie martwisz się o obciążenie systemu, AutoSize działa dobrze z parametrem zawijania.,Początkowe kolumny nadal używają tyle szerokości, ile potrzeba, aby wyświetlić elementy w jednej linii, ale końcowa kolumna jest owinięta, jeśli to konieczne.

Uwaga

niektóre kolumny mogą nie być wyświetlane, gdy najpierw określisz najszersze kolumny. Aby uzyskać najlepsze wyniki, najpierw określ najmniejsze elementy danych.

w poniższym przykładzie najpierw określamy najszersze właściwości.

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

nawet przy zawijaniu, końcowa Kolumna Id jest pomijana:

organizowanie wyjścia tabeli (-GroupBy)

innym użytecznym parametrem do kontroli wyjścia tabeli jest GroupBy., Dłuższe zestawienia tabelaryczne mogą być trudne do porównania. Parametr GroupBy grupuje wyjście na podstawie wartości właściwości. Na przykład, możemy grupować usługi według typu StartType dla łatwiejszej kontroli, pomijając wartość theStartType z listy właściwości:

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