Udostępnij za pośrednictwem


Format-Table

Formatuje dane wyjściowe jako tabelę.

Składnia

Format-Table
      [-AutoSize]
      [-RepeatHeader]
      [-HideTableHeaders]
      [-Wrap]
      [[-Property] <Object[]>]
      [-GroupBy <Object>]
      [-View <String>]
      [-ShowError]
      [-DisplayError]
      [-Force]
      [-Expand <String>]
      [-InputObject <PSObject>]
      [<CommonParameters>]

Opis

Polecenie Format-Table cmdlet 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 Właściwość , aby wybrać właściwości, które chcesz wyświetlić.

Program PowerShell używa domyślnych formatów do definiowania sposobu wyświetlania typów obiektów. Za pomocą .ps1xml plików 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 Widok , 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 właściwości lub parametru GroupBy . Aby uzyskać więcej informacji na temat tabel skrótów, zobacz about_Hash_Tables.

Przykłady

Przykład 1. Formatowanie hosta programu PowerShell

W tym przykładzie są wyświetlane informacje o programie hosta programu PowerShell w tabeli.

Get-Host | Format-Table -AutoSize

Polecenie Get-Host cmdlet pobiera obiekty System.Management.Automation.Internal.Host.InternalHost reprezentujące hosta. Obiekty są wysyłane w dół potoku do Format-Table i wyświetlane w tabeli. Parametr AutoSize dostosowuje szerokości kolumn, 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 Get-Process cmdlet pobiera obiekty reprezentujące każdy proces na komputerze i wysyła je w dół potoku do Sort-Objectusługi . Obiekty są sortowane w kolejności 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 wartości właściwości BasePriority . Parametr Zawijanie zapewnia, ż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 , które reprezentują procesy uruchomione na komputerze. Obiekty są wysyłane w dół potoku do Sort-Object, i są sortowane na podstawie właściwości StartTime .

Posortowane obiekty są wysyłane w dół potoku do Format-Table. Parametr Widok określa widok StartTime zdefiniowany w pliku programu PowerShell DotNetTypes.format.ps1xml dla obiektów System.Diagnostics.Process . Widok StartTime konwertuje czas rozpoczęcia poszczególnych procesów na krótką datę, a następnie grupuje procesy według daty rozpoczęcia.

Plik DotNetTypes.format.ps1xml zawiera widok Priorytet dla procesów. Możesz utworzyć własne format.ps1xml pliki z niestandardowymi 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 utworzonych przez Get-ChildItemprogram .

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-ChildItempobiera 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 Widok , aby określić widok niestandardowy mygciview , który zawiera kolumnę CreationTime .

Format-Table Domyślne dane wyjściowe dla Get-ChildItem elementu nie zawierają kolumny CreationTime.

Przykład 5. Używanie właściwości dla danych wyjściowych tabeli

W tym przykładzie użyto parametru Właściwość , aby wyświetlić wszystkie usługi komputera w tabeli dwukolumna, która pokazuje 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 w dół potoku. Format-Table używa parametru Property , aby określić, że właściwości Name i DependentServices są wyświetlane w tabeli.

Właściwości 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 procesów notatnika komputera lokalnego. Łączny czas wykonywania jest obliczany przez odejmowanie 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 procesy notatnika komputera lokalnego i wysyła obiekty w dół potoku. Format-Table Wyświetla tabelę z dwiema kolumnami: ProcessName, Get-Process właściwością i TotalRunningTime, właściwością obliczeniową.

Właściwość TotalRunningTime jest określana przez tabelę skrótów z dwoma kluczami, Etykieta i Wyrażenie. Klucz etykiety określa nazwę właściwości. Klucz wyrażenia określa obliczenie. Wyrażenie pobiera właściwość StartTime każdego obiektu procesu i odejmuje ją z wyniku Get-Date polecenia, które pobiera bieżącą datę i godzinę.

Przykład 7. Formatowanie procesów Notatnika

W tym przykładzie użyto Get-CimInstance funkcji , aby uzyskać czas działania dla wszystkich procesów notatnika na komputerze lokalnym. Można użyć Get-CimInstance parametru 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 opisujące 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 (Łączny czas działania) do klucza Etykieta . Blok skryptu klucza wyrażenia oblicza, jak długo proces został uruchomiony, odejmując datę utworzenia procesów od bieżącej daty. Polecenie Get-Date cmdlet pobiera bieżącą datę. Data utworzenia jest odejmowana od bieżącej daty. Wynikiem jest wartość Total Running Time (Łączny czas 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.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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 poleceniu i konieczności rozwiązywania problemów z wyrażeniami.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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.
Type:String
Accepted values:CoreOnly, EnumOnly, Both
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Wskazuje, że polecenie cmdlet kieruje polecenie cmdlet, aby wyświetlić wszystkie informacje o błędzie. Użyj z parametrem DisplayError lub ShowError . Domyślnie, gdy obiekt błędu jest zapisywany w strumieniu błędu lub wyświetla strumienie, wyświetlane są tylko niektóre informacje o błędzie.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-GroupBy

Określa posortowane dane wyjściowe w oddzielnych tabelach na podstawie wartości właściwości. Na przykład można użyć funkcji GroupBy , aby wyświetlić listę usług w osobnych tabelach na podstawie ich stanu.

Wprowadź wyrażenie lub właściwość. Parametr GroupBy oczekuje sortowania obiektów. Użyj polecenia cmdlet przed użyciem Sort-ObjectFormat-Table polecenia , 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-wartość to:

  • Nazwa (lub etykieta) — <string>
  • Wyrażenie — <string> lub <script block>
  • Formatstring- <string>

Aby uzyskać więcej informacji, zobacz about_Calculated_Properties.

Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HideTableHeaders

Pomija nagłówki kolumn z tabeli.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Określa obiekty do formatowania. Wprowadź zmienną zawierającą obiekty lub wpisz polecenie lub wyrażenie, które pobiera obiekty.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Property

Określa właściwości obiektu wyświetlane na ekranie i kolejność ich wyświetlania. Wpisz jedną lub więcej nazw właściwości rozdzielonych przecinkami lub użyj tabeli skrótów, aby wyświetlić właściwość obliczeniową. Dozwolone są symbole wieloznaczne.

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 właściwośćA i właściwośćB , ale kolejne obiekty mają właściwościA, PropertyB i PropertyC, zostaną wyświetlone tylko nagłówki PropertyA i PropertyB .

Parametr Właściwość jest opcjonalny. Nie można użyć parametrów Właściwości i Wyświetl 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-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 mieć Leftwartość , Centerlub Right

Aby uzyskać więcej informacji, zobacz about_Calculated_Properties.

Type:Object[]
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-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 pagera, takiego jak less lub more stronicowanie za pomocą czytnika zawartości ekranu.

Ten parametr został dodany w programie PowerShell 6.2.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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 poleceniu i konieczności rozwiązywania problemów z wyrażeniami.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-View

Począwszy od programu PowerShell 6, widoki domyślne są definiowane w kodzie źródłowym programu PowerShell C# . Pliki *.format.ps1xml z programu PowerShell 5.1 i starszych wersji nie istnieją w programie PowerShell 6 i nowszych wersjach.

Parametr Widok 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 Widok muszą używać formatu tabeli, w przeciwnym razie Format-Table kończy się niepowodzeniem. Jeśli alternatywny widok jest listą, użyj Format-List polecenia cmdlet . Jeśli widok alternatywny nie jest listą lub tabelą, użyj Format-Custom polecenia cmdlet .

Nie można użyć parametrów Właściwości i Wyświetl w tym samym poleceniu.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Wrap

Wyświetla tekst przekraczający szerokość kolumny w następnym wierszu. Domyślnie tekst przekraczający szerokość kolumny jest obcinany.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Dane wejściowe

PSObject

Dowolny obiekt można wysłać w dół potoku do Format-Table.

Dane wyjściowe

Microsoft.PowerShell.Commands.Internal.Format

Format-Table zwraca obiekty formatu reprezentujące tabelę.