- 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-Table
akceptują 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-List
cmdlet 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-Table
cmdlet 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