Format-Table
Formatuje dane wyjściowe jako tabelę.
Składnia
All
Format-Table
[[-Property] <Object[]>]
[-AutoSize]
[-RepeatHeader]
[-HideTableHeaders]
[-Wrap]
[-GroupBy <Object>]
[-View <string>]
[-ShowError]
[-DisplayError]
[-Force]
[-Expand <string>]
[-InputObject <psobject>]
[<CommonParameters>]
Opis
Polecenie cmdlet Format-Table formatuje dane wyjściowe polecenia jako tabelę z wybranymi właściwościami obiektu w każdej kolumnie. Typ obiektu określa domyślny układ i właściwości wyświetlane w każdej kolumnie. Możesz użyć parametru Property, aby wybrać właściwości, które chcesz wyświetlić.
Program PowerShell używa domyślnych formaterów do definiowania sposobu wyświetlania typów obiektów. Za pomocą plików .ps1xml można tworzyć widoki niestandardowe, które wyświetlają tabelę wyjściową z określonymi właściwościami. Po utworzeniu widoku niestandardowego użyj parametru View, aby wyświetlić tabelę z widokiem niestandardowym. Aby uzyskać więcej informacji na temat widoków, zobacz about_Format.ps1xml.
Możesz użyć tabeli skrótów, aby dodać właściwości obliczeniowe do obiektu przed jego wyświetleniem i określić nagłówki kolumn w tabeli. Aby dodać właściwość obliczeniową, użyj parametru właściwości
Przykłady
Przykład 1. Formatowanie hosta programu PowerShell
W tym przykładzie przedstawiono informacje o programie hosta dla programu PowerShell w tabeli.
Get-Host | Format-Table -AutoSize
Polecenie cmdlet Get-Host pobiera obiekty System.Management.Automation.Internal.Host.InternalHost obiektów reprezentujących hosta. Obiekty są wysyłane w dół potoku do Format-Table i wyświetlane w tabeli. Parametr AutoSize dostosowuje szerokość kolumny, aby zminimalizować obcinanie.
Przykład 2. Formatowanie procesów według parametru BasePriority
W tym przykładzie procesy są wyświetlane w grupach, które mają tę samą właściwość BasePriority.
Get-Process | Sort-Object -Property BasePriority |
Format-Table -GroupBy BasePriority -Wrap
Polecenie cmdlet Get-Process pobiera obiekty reprezentujące każdy proces na komputerze i wysyła je w dół potoku do Sort-Object. Obiekty są sortowane w kolejności ich właściwości BasePriority.
Posortowane obiekty są wysyłane w dół potoku do Format-Table. Parametr GroupBy rozmieszcza dane procesu w grupy na podstawie ich wartości właściwości BasePriority. Parametr Zawijanie gwarantuje, że dane nie są obcięte.
Przykład 3. Formatowanie procesów według daty rozpoczęcia
W tym przykładzie są wyświetlane informacje o procesach uruchomionych na komputerze. Obiekty są sortowane i Format-Table używają widoku do grupowania obiektów według daty rozpoczęcia.
Get-Process | Sort-Object StartTime | Format-Table -View StartTime
Get-Process pobiera obiekty System.Diagnostics.Process reprezentujące procesy uruchomione na komputerze. Obiekty są wysyłane w dół potoku do Sort-Objecti są sortowane na podstawie właściwości StartTime.
Posortowane obiekty są wysyłane w dół potoku do Format-Table. Parametr View określa widok StartTime zdefiniowany w pliku DotNetTypes.format.ps1xml programu PowerShell dla obiektów System.Diagnostics.Process. Widok StartTime konwertuje czas rozpoczęcia każdego procesu na datę krótką, a następnie grupuje procesy według daty rozpoczęcia.
Plik DotNetTypes.format.ps1xml zawiera widok priorytetu dla procesów. Możesz utworzyć własne pliki format.ps1xml z dostosowanymi widokami.
Przykład 4. Używanie widoku niestandardowego dla danych wyjściowych tabeli
W tym przykładzie widok niestandardowy wyświetla zawartość katalogu. Widok niestandardowy dodaje kolumnę CreationTime do danych wyjściowych tabeli dla obiektów System.IO.DirectoryInfo i System.IO.FileInfo obiektów utworzonych przez Get-ChildItem.
Widok niestandardowy w tym przykładzie został utworzony na podstawie widoku zdefiniowanego w kodzie źródłowym programu PowerShell. Aby uzyskać więcej informacji o widokach i kodzie użytym do utworzenia widoku tego przykładu, zobacz about_Format.ps1xml.
Get-ChildItem -Path C:\Test | Format-Table -View MyGciView
Directory: C:\Test
Mode LastWriteTime CreationTime Length Name
---- ------------- ------------ ------ ----
d----- 11/4/2019 15:54 9/24/2019 15:54 Archives
d----- 8/27/2019 14:22 8/27/2019 14:22 Drawings
d----- 10/23/2019 09:38 2/25/2019 09:38 Files
-a---- 11/7/2019 11:07 11/7/2019 11:07 11345 Alias.txt
-a---- 2/27/2019 15:15 2/27/2019 15:15 258 alias_out.txt
-a---- 2/27/2019 15:16 2/27/2019 15:16 258 alias_out2.txt
Get-ChildItem pobiera zawartość bieżącego katalogu, C:\Test. Obiekty System.IO.DirectoryInfo i System.IO.FileInfo są wysyłane w dół potoku.
Format-Table używa parametru View, aby określić widok niestandardowy MyGciView, który zawiera kolumnę CreationTime.
Domyślne dane wyjściowe Format-Table dla Get-ChildItem nie obejmują kolumny CreationTime.
Przykład 5. Używanie właściwości dla danych wyjściowych tabeli
W tym przykładzie użyto parametru property, aby wyświetlić wszystkie usługi komputera w dwukolumnach tabeli zawierającej właściwości Name i DependentServices.
Get-Service | Format-Table -Property Name, DependentServices
Get-Service pobiera wszystkie usługi na komputerze i wysyła obiekty System.ServiceProcess.ServiceController potoku.
Format-Table używa parametru Property, aby określić, że właściwości Name i DependentServices są wyświetlane w tabeli.
Name i DependentServices są dwiema właściwościami typu obiektu. Aby wyświetlić wszystkie właściwości: Get-Service | Get-Member -MemberType Properties
Przykład 6. Formatowanie procesu i obliczanie czasu działania
W tym przykładzie zostanie wyświetlona tabela z nazwą procesu i łącznym czasem działania notatnika procesów komputera lokalnego. Łączny czas wykonywania jest obliczany przez odjęcie czasu rozpoczęcia każdego procesu od bieżącego czasu.
Get-Process notepad |
Format-Table ProcessName, @{
Label = "TotalRunningTime"
Expression = {(Get-Date) - $_.StartTime}
}
ProcessName TotalRunningTime
----------- ----------------
notepad 03:20:00.2751767
notepad 00:00:16.7710520
Get-Process pobiera wszystkie notatnika komputera lokalnego procesy i wysyła obiekty w dół potoku.
Format-Table wyświetla tabelę z dwiema kolumnami: ProcessName, właściwość Get-Process i TotalRunningTime, właściwość obliczeniową.
Właściwość totalRunningTime Get-Date, które pobiera bieżącą datę i godzinę.
Przykład 7. Formatowanie procesów Notatnika
W tym przykładzie użyto Get-CimInstance, aby uzyskać czas działania dla wszystkich Notatnik procesów na komputerze lokalnym. Można użyć Get-CimInstance z parametrem ComputerName, aby uzyskać informacje z komputerów zdalnych.
$Processes = Get-CimInstance -Class Win32_Process -Filter "name='notepad.exe'"
$Processes | Format-Table ProcessName, @{
Label = "Total Running Time"
Expression = {(Get-Date) - $_.CreationDate}
}
ProcessName Total Running Time
----------- ------------------
notepad.exe 03:39:39.6260693
notepad.exe 00:19:56.1376922
Get-CimInstance pobiera wystąpienia klasy Win32_Process WMI, która opisuje wszystkie procesy komputera lokalnego o nazwie notepad.exe. Obiekty procesu są przechowywane w zmiennej $Processes.
Obiekty procesu w zmiennej $Processes są wysyłane w dół potoku do Format-Table, który wyświetla właściwość ProcessName i nową właściwość obliczeniową, Total Running Time.
Polecenie przypisuje nazwę nowej właściwości obliczeniowej, Total Running Time, do klucza etykieta. Blok skryptu klucza expression oblicza, jak długo proces został uruchomiony, odejmując datę utworzenia procesów od bieżącej daty. Polecenie cmdlet Get-Date pobiera bieżącą datę. Data utworzenia jest odejmowana od bieżącej daty. Wynikiem jest wartość łącznego czasu działania.
Przykład 8. Rozwiązywanie problemów z błędami formatu
W poniższych przykładach przedstawiono wyniki dodawania parametrów DisplayError lub ShowError z wyrażeniem.
Get-Date | Format-Table DayOfWeek, { $_ / $null } -DisplayError
DayOfWeek $_ / $null
--------- ------------
Wednesday #ERR
Get-Date | Format-Table DayOfWeek, { $_ / $null } -ShowError
DayOfWeek $_ / $null
--------- ------------
Wednesday
InvalidArgument: Failed to evaluate expression " $_ / $null ".
Parametry
-AutoSize
Wskazuje, że polecenie cmdlet dostosowuje rozmiar kolumn i liczbę kolumn na podstawie szerokości danych. Domyślnie rozmiar i liczba kolumn są określane przez widok.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | False |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-DisplayError
Wskazuje, że polecenie cmdlet wyświetla błędy w wierszu polecenia. Ten parametr może służyć jako pomoc debugowania podczas formatowania wyrażeń w Format-Table polecenia i należy rozwiązać problemy z wyrażeniami.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | False |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-Expand
Określa format obiektu kolekcji i obiektów w kolekcji. Ten parametr jest przeznaczony do formatowania obiektów obsługujących interfejs ICollection(System.Collections). Wartość domyślna to EnumOnly. Dopuszczalne wartości tego parametru są następujące:
- EnumOnly: wyświetla właściwości obiektów w kolekcji.
- CoreOnly: wyświetla właściwości obiektu kolekcji.
- Oba: wyświetla właściwości obiektu kolekcji i właściwości obiektów w kolekcji.
Właściwości parametru
| Typ: | String |
| Domyślna wartość: | None |
| Dopuszczalne wartości: | CoreOnly, EnumOnly, Both |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-Force
Wskazuje, że polecenie cmdlet kieruje polecenie cmdlet, aby wyświetlić wszystkie informacje o błędzie. Użyj parametru DisplayError lub ShowError. Domyślnie, gdy obiekt błędu jest zapisywany do strumienia błędów lub strumienia wyświetlania, wyświetlane są tylko niektóre informacje o błędzie.
Wymagane również podczas formatowania niektórych typów platformy .NET. Aby uzyskać więcej informacji, zobacz sekcję Notes.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | False |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-GroupBy
Określa posortowane dane wyjściowe w osobnych tabelach na podstawie wartości właściwości. Na przykład można użyć GroupBy do wyświetlania listy usług w osobnych tabelach na podstawie ich stanu.
Wprowadź wyrażenie lub właściwość. Parametr GroupBy oczekuje sortowania obiektów.
Przed użyciem Sort-Object użyj polecenia cmdlet Format-Table, aby zgrupować obiekty.
Wartość parametru GroupBy może być nową właściwością obliczeniową. Właściwość obliczeniowa może być blokiem skryptu lub tabelą skrótów. Prawidłowe pary klucz i wartość to:
- Nazwa (lub etykieta) —
<string> - Wyrażenie —
<string>lub<script block> - FormatString —
<string>
Aby uzyskać więcej informacji, odnieś się do about_Calculated_Properties.
Właściwości parametru
| Typ: | Object |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-HideTableHeaders
Pomija nagłówki kolumn z tabeli.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | False |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-InputObject
Określa obiekty do formatowania. Wprowadź zmienną zawierającą obiekty lub wpisz polecenie lub wyrażenie, które pobiera obiekty.
Właściwości parametru
| Typ: | PSObject |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | True |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-Property
Określa właściwości obiektu wyświetlane na ekranie i kolejność ich wyświetlania. Wpisz co najmniej jedną nazwę właściwości rozdzieloną przecinkami lub użyj tabeli skrótów, aby wyświetlić właściwość obliczeniową. Symbole wieloznaczne są dozwolone.
Jeśli pominiesz ten parametr, właściwości wyświetlane na ekranie zależą od właściwości pierwszego obiektu. Jeśli na przykład pierwszy obiekt ma PropertyA i PropertyB, ale kolejne obiekty mają PropertyA, PropertyBi PropertyC, zostaną wyświetlone tylko nagłówki PropertyA i PropertyB.
Parametr właściwości jest opcjonalny. Nie można użyć parametrów właściwości i View w tym samym poleceniu.
Wartość parametru Property może być nową właściwością obliczeniową. Właściwość obliczeniowa może być blokiem skryptu lub tabelą skrótów. Prawidłowe pary klucz i wartość to:
- Nazwa (lub etykieta)
<string> - Wyrażenie —
<string>lub<script block> - FormatString —
<string> - Szerokość —
<int32>— musi być większa niż0 - Wyrównanie — wartość może być
Left,CenterlubRight
Aby uzyskać więcej informacji, odnieś się do about_Calculated_Properties.
Właściwości parametru
| Typ: | Object[] |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | True |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | 0 |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-RepeatHeader
Powtarza wyświetlanie nagłówka tabeli po pełnym ekranie. Powtarzany nagłówek jest przydatny, gdy dane wyjściowe są przesyłane potokiem do stronicowania, takiego jak less lub more lub stronicowanie za pomocą czytnika zawartości ekranu.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | False |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-ShowError
Ten parametr wysyła błędy za pośrednictwem potoku. Ten parametr może służyć jako pomoc debugowania podczas formatowania wyrażeń w Format-Table polecenia i należy rozwiązać problemy z wyrażeniami.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | False |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-View
Począwszy od programu PowerShell 6, widoki domyślne są definiowane w programie PowerShell C# kodzie źródłowym. Pliki *.format.ps1xml z programu PowerShell 5.1 i starszych wersji nie istnieją w programie PowerShell 6 i nowszych wersjach.
Parametr View umożliwia określenie alternatywnego formatu lub widoku niestandardowego dla tabeli. Możesz użyć domyślnych widoków programu PowerShell lub utworzyć widoki niestandardowe. Aby uzyskać więcej informacji na temat tworzenia widoku niestandardowego, zobacz about_Format.ps1xml.
Alternatywne i niestandardowe widoki dla parametru View muszą używać formatu tabeli, w przeciwnym razie Format-Table kończy się niepowodzeniem. Jeśli widok alternatywny jest listą, użyj polecenia cmdlet Format-List. Jeśli widok alternatywny nie jest listą lub tabelą, użyj polecenia cmdlet Format-Custom.
Nie można użyć parametrów właściwości i View w tym samym poleceniu.
Właściwości parametru
| Typ: | String |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-Wrap
Wyświetla tekst, który przekracza szerokość kolumny w następnym wierszu. Domyślnie tekst przekraczający szerokość kolumny jest obcinany.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | False |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
CommonParameters
To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.
Dane wejściowe
PSObject
Do tego polecenia cmdlet można przekierować dowolny obiekt.
Dane wyjściowe
Microsoft.PowerShell.Commands.Internal.Format
To polecenie cmdlet zwraca obiekty formatu reprezentujące tabelę.
Uwagi
Program PowerShell zawiera następujące aliasy dla Format-Table:
- Wszystkie platformy:
ft
Program PowerShell 7.2 wprowadził nowe funkcje do kolorowania danych wyjściowych. Kolory można zarządzać przy użyciu $PSStyle zmiennej automatycznej. Właściwość $PSStyle.Formatting.TableHeader definiuje kolor używany dla nagłówka tabeli wyświetlanej przez Format-Table. Aby uzyskać więcej informacji na temat tego ustawienia, zobacz about_ANSI_Terminals.
Jeśli chcesz użyć Format-Table z właściwością i parametrem, należy uwzględnić parametr Force w dowolnym z następujących warunków:
Obiekty wejściowe są zwykle formatowane poza pasmem przy użyciu metody
ToString(). Dotyczy to typów pierwotnych[string]i .NET, które są nadzbiorem wbudowanych typów liczbowych, takich jak[int],[long]i inne.Obiekty wejściowe nie mają właściwości publicznych.
Obiekty wejściowe są wystąpieniami typów opakowań używanych przez program PowerShell dla strumieni wyjściowych innych niż strumień Sukcesu. Ma to zastosowanie tylko wtedy, gdy te typy otoki są wysyłane do strumienia wyjściowego Powodzenie, który wymaga przechwycenia ich za pośrednictwem typowych parametrów, takich jak ErrorVariable najpierw lub przy użyciu przekierowania, takiego jak
*>&1.