Udostępnij za pośrednictwem


Format-Table

Formatuje dane wyjściowe jako tabelę.

Składnia

Format-Table
      [[-Property] <Object[]>]
      [-AutoSize]
      [-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, ale można użyć parametru Property, aby wybrać właściwości, które chcesz zobaczyć.

Możesz również 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 lub GroupBy.

Przykłady

Przykład 1. Formatowanie hosta programu PowerShell

To polecenie wyświetla informacje o programie hosta dla programu PowerShell w tabeli. Domyślnie są one formatowane na liście.

Get-Host | Format-Table -AutoSize

Polecenie cmdlet Get-Host pobiera obiekty reprezentujące hosta. Operator potoku (|) przekazuje obiekt do polecenia cmdlet Format-Table. Polecenie cmdlet Format-Table formatuje obiekty w tabeli. Parametr AutoSize dostosowuje szerokość kolumny, aby zminimalizować obcinanie.

Przykład 2. Formatowanie procesów według parametru BasePriority

To polecenie wyświetla procesy na komputerze w grupach z tym samym priorytetem podstawowym.

Get-Process | Sort-Object -Property basepriority | Format-Table -GroupBy basepriority -Wrap

Polecenie cmdlet Get-Process pobiera obiekty reprezentujące każdy proces na komputerze. Operator potoku (|) przekazuje obiekt do polecenia cmdlet Sort-Object, które sortuje obiekty w kolejności od ich priorytetu podstawowego.

Inny operator potoku przekazuje wyniki do polecenia cmdlet Format-Table. Parametr GroupBy rozmieszcza dane dotyczące procesów w grupy na podstawie wartości właściwości BasePriority. Parametr Zawijanie gwarantuje, że dane nie są obcinane.

Przykład 3. Formatowanie procesów według daty rozpoczęcia

Get-Process | Sort-Object starttime | Format-Table -View starttime

To polecenie wyświetla informacje o procesach na komputerze w grupie na podstawie daty rozpoczęcia procesu. Używa on polecenia cmdlet Get-Process do pobierania obiektów reprezentujących procesy na komputerze. Operator potoku (|) wysyła dane wyjściowe Get-Process do polecenia cmdlet Sort-Object, które sortuje je na podstawie właściwości StartTime. Inny operator potoku wysyła posortowane wyniki do Format-Table.

Parametr View służy do wybierania widoku StartTime zdefiniowanego w pliku dla obiektów System.Diagnostics.Process, takich jak te zwracane przez . Ten widok konwertuje StartTime procesu na datę krótką, a następnie grupuje procesy według daty rozpoczęcia.

Plik zawiera również widok priorytetu dla procesów. Możesz utworzyć własne pliki format.ps1xml z dostosowanymi widokami.

Przykład 4. Formatowanie usług

Get-Service | Format-Table -Property Name, DependentServices

To polecenie wyświetla wszystkie usługi na komputerze w tabeli z dwiema kolumnami, Name i DependentServices. Polecenie cmdlet Get-Service pobiera wszystkie usługi na komputerze. Operator potoku (|) wysyła wyniki do polecenia cmdlet Format-Table, które formatuje dane wyjściowe w tabeli. Parametr Property określa właściwości, które są wyświetlane w tabeli jako kolumny. Nazwa parametru właściwości jest opcjonalna, więc można go pominąć, na przykład .

Name i DependentServices to tylko dwie właściwości obiektów usługi. Aby wyświetlić wszystkie właściwości, wpisz Get-Service | Get-Member -MemberType Properties.

Przykład 5. Formatowanie procesu i obliczanie czasu działania

To polecenie pokazuje, jak używać właściwości obliczeniowej w tabeli.

Get-Process Notepad | Format-Table ProcessName,
   @{Label="TotalRunningTime"; Expression={(Get-Date) - $_.StartTime}}

Polecenie wyświetla tabelę z nazwą procesu i łącznym czasem wykonywania wszystkich procesów Notatnika na komputerze lokalnym. Łączny czas wykonywania jest obliczany przez odjęcie czasu rozpoczęcia każdego procesu od bieżącego czasu.

Polecenie używa polecenia cmdlet Get-Process, aby pobrać wszystkie procesy o nazwie Notatnik na komputerze lokalnym. Operator potoku (|) wysyła wyniki do Format-Table, która wyświetla tabelę z dwiema kolumnami: ProcessName, standardową właściwością procesów i TotalRunningTime, właściwością obliczeniową.

Właściwość totalRunningTime jest określana przez tabelę skrótów z dwoma kluczami, Label i Expression. Nazwa właściwości jest przypisywana do klucza etykiety . Obliczenie jest przypisywane do klucza Expression. Wyrażenie pobiera właściwość StartTime każdego obiektu procesu i odejmuje ją z wyniku polecenia Get-Date, które pobiera bieżącą datę i godzinę.

Przykład 6. Formatowanie procesów Notatnika

Te polecenia są podobne do poprzedniego polecenia, z tą różnicą, że te polecenia używają polecenia cmdlet Get-WmiObject.

$Processes = Get-WmiObject -ComputerName "Server01" -Class win32_process -Filter "name='notepad.exe'"
$Processes | Format-Table ProcessName, @{ Label = "Total Running Time"; Expression={(Get-Date) - $_.ConvertToDateTime($_.CreationDate)}}

Pierwsze polecenie używa polecenia cmdlet Get-WmiObject w celu pobrania wystąpień klasy Win32_Process usługi WMI, która opisuje wszystkie procesy na komputerze Server01 o nazwie Notepad.exe. Polecenie przechowuje informacje o procesie w zmiennej $Processes.

Drugie polecenie używa operatora potoku (|) do wysyłania informacji o procesie w zmiennej $Processes do polecenia cmdlet Format-Table, które wyświetla ProcessName i nową właściwość obliczeniową.

Polecenie przypisuje nazwę nowej właściwości obliczeniowej "Total Running Time" do klucza Label. Blok skryptu przypisany do klucza Expression oblicza, jak długo proces został uruchomiony, odejmując datę utworzenia procesu od bieżącej daty. Polecenie cmdlet Get-Date pobiera bieżącą datę. Metoda ConvertToDateTime konwertuje właściwość CreationDate obiektu Win32_Process z obiektu CIM_DATETIME WMI na obiekt CIM_DATETIME platformy .NET DateTime, który można porównać z danymi wyjściowymi Get-Date. Następnie przekonwertowana data utworzenia jest odejmowana od bieżącej daty. Wynikiem jest wartość łącznego czasu działania.

Przykład 7. Rozwiązywanie problemów z błędami formatu

W poniższych przykładach pokazano wyniki dodawania parametrów DisplayError lub ShowError z wyrażeniem.

PC /> Get-Date | Format-Table DayOfWeek,{ $_ / $null } -DisplayError

DayOfWeek  $_ / $null
--------- ------------
Wednesday #ERR

PC /> Get-Date | Format-Table DayOfWeek,{ $_ / $null } -ShowError

DayOfWeek  $_ / $null
--------- ------------
Wednesday

Failed to evaluate expression " $_ / $null ".
    + CategoryInfo          : InvalidArgument: (10/30/2013 2:28:07 PM:PSObject) \[\], RuntimeException
    + FullyQualifiedErrorId : mshExpressionError

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.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-DisplayError

Wskazuje, że polecenie cmdlet wyświetla błędy w wierszu polecenia. Ten parametr jest rzadko używany, ale może być używany jako pomoc debugowania podczas formatowania wyrażeń w Format-Table polecenia, a wyrażenia nie wydają się działać.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Expand

Określa format obiektu kolekcji, a także obiekty 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 to:

  • 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.
Typ:String
Dopuszczalne wartości:CoreOnly, EnumOnly, Both
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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 w strumieniach błędów lub wyświetlanych strumieni, wyświetlane są tylko niektóre informacje o błędzie.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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ść danych wyjściowych. Dane wyjściowe muszą zostać posortowane przed wysłaniem ich do Format-Table.

Wartość parametru GroupBy może być nową właściwością obliczeniową. Aby utworzyć tabelę obliczeniową, użyj tabeli skrótów. Prawidłowe klucze to:

  • Ciąg <nazwa (lub etykieta)>
  • Blok>> lub blok skryptu <<wyrażeń
  • > ciągów <FormatString
Typ:Object
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-HideTableHeaders

Pomija nagłówki kolumn z tabeli.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-InputObject

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

Typ:PSObject
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych: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ą. 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 PropertyA i PropertyB, ale kolejne obiekty mają PropertyA, PropertyB i PropertyC tylko PropertyA i WłaściwościB nagłówki.

Nazwa parametru właściwość jest opcjonalna. W tym samym poleceniu nie można użyć parametrów właściwości i View.

Wartość parametru Property może być nową właściwością obliczeniową. Aby utworzyć właściwość obliczeniową, użyj tabeli skrótów. Prawidłowe klucze to:

  • Ciąg <nazwa (lub etykieta)>
  • Blok>> lub blok skryptu <<wyrażeń
  • > ciągów <FormatString
  • Szerokość <int32>
  • Wyrównanie (wartość może być "Lewa", "Środkowa" lub "Prawa")
Typ:Object[]
Position:0
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:True

-ShowError

Wysyła błędy za pośrednictwem potoku. Ten parametr jest rzadko używany, ale może być używany jako pomoc debugowania podczas formatowania wyrażeń w Format-Table polecenia, a wyrażenia nie wydają się działać.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-View

Określa nazwę alternatywnego formatu tabeli lub widoku. W tym samym poleceniu nie można użyć parametrów właściwości i View.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Wrap

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

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

PSObject

Możesz przekazać dowolny obiekt do Format-Table.

Dane wyjściowe

Microsoft.PowerShell.Commands.Internal.Format

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

Uwagi

Parametr GroupBy zakłada, że obiekty są sortowane. Przed użyciem Format-Table użyj polecenia cmdlet Sort-Object, aby zgrupować obiekty.

Parametr View umożliwia określenie alternatywnego formatu tabeli. Możesz użyć widoków zdefiniowanych w plikach *.format.PS1XML w katalogu programu PowerShell lub utworzyć własne widoki w nowych plikach PS1XML, a następnie użyć polecenia cmdlet Update-FormatData, aby uwzględnić je w programie PowerShell. Alternatywne widoki dla parametru View muszą używać formatu tabeli. W przeciwnym razie polecenie kończy się niepowodzeniem. Jeśli widok alternatywny jest listą, użyj polecenia cmdlet Format-List. Jeśli widok alternatywny nie jest listą ani tabelą, użyj polecenia cmdlet Format-Custom.