Format-Table

Formatuje wyjście jako tabelę z wybranymi kolumnami.

Format-Table (alias ft) to cmdlet PowerShella, który bierze obiekty z potoku i wyświetla je jako tabelę z kolumnami i nagłówkami. Nie modyfikuje danych — tylko zmienia sposób, w jaki widzisz je w konsoli. Przydaje się, gdy domyślny widok obcina kolumny albo gdy chcesz pokazać tylko wybrane właściwości obiektu zamiast całego śmietnika, który zwraca np. Get-Process.

Składnia i najważniejsze opcje

Podstawowa forma to przekierowanie obiektów do cmdletu przez potok:

| Format-Table [-Property ] [-AutoSize]

  • -Property — lista właściwości (kolumn), które chcesz pokazać; obsługuje wieloznaczniki, np. -Property Name, CPU.
  • -AutoSize — dopasowuje szerokość kolumn do zawartości zamiast używać stałych szerokości (PowerShell musi wtedy zbuforować całe wyjście).
  • -Wrap — zawija długi tekst w komórce do kolejnych linii zamiast obcinać go wielokropkiem.
  • -GroupBy — dzieli wynik na sekcje według wartości danej właściwości (np. status usługi).
  • -HideTableHeaders — ukrywa wiersz nagłówków kolumn.
  • -RepeatHeader — powtarza nagłówki na każdej stronie wyjścia (wygodne przy długich listach).
  • -Force — wymusza wyświetlenie wszystkich danych, w tym tych zwykle ukrytych.

Przykłady użycia

  • Get-Process | Format-Table -Property Name, Id, CPU -AutoSize — pokazuje tylko trzy kolumny i zwęża je do zawartości.
  • Get-Service | Format-Table -GroupBy Status — grupuje usługi w osobne sekcje według statusu (Running, Stopped).
  • Get-ChildItem C:\Logs | Format-Table Name, Length, LastWriteTime -AutoSize — czytelna tabela plików z rozmiarem i datą modyfikacji.
  • Get-EventLog -LogName System -Newest 20 | Format-Table TimeGenerated, Source, Message -Wrap — zawija długie komunikaty zamiast je ucinać.
  • Get-Process | Format-Table Name, @{Name='RAM(MB)';Expression={[math]::Round($_.WS/1MB,1)}} — kolumna wyliczana (hashtable) z własną nazwą i przeliczeniem na megabajty.

Częste błędy i pułapki

Format-Table musi być ostatni w potoku. Jeśli po nim wstawisz Export-Csv albo Where-Object, dostaniesz bezużyteczne obiekty formatujące (Format-*), a nie swoje dane. Do dalszej obróbki używaj Select-Object, do plików — Export-Csv bez wcześniejszego formatowania.

Obcinanie kolumn. Bez -AutoSize lub -Wrap PowerShell tnie długie wartości wielokropkiem (). Pamiętaj, że -AutoSize buforuje cały strumień, więc przy ogromnych zbiorach spowalnia wyświetlanie.

Za dużo kolumn. Gdy obiekt ma wiele właściwości, PowerShell sam przełącza się na listę (Format-List) albo ucina kolumny. Wskaż jawnie te, które chcesz, przez -Property.

Powiązane komendy: Format-List, Format-Wide, Select-Object, Sort-Object, Out-GridView, Export-Csv.