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:
-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.