Format-List to cmdlet PowerShell, który zmienia sposób wyświetlania wyniku: zamiast wpychać wszystko do tabeli z obciętymi kolumnami, wypisuje każdą właściwość obiektu w osobnej linii w formacie Nazwa : Wartość. Używasz go, gdy chcesz zobaczyć WSZYSTKIE szczegóły obiektu, a nie tylko te kilka, które PowerShell wybiera domyślnie do tabeli. To Twój pierwszy odruch, kiedy myślisz „ale przecież ten obiekt ma więcej pól, czemu ich nie widzę”. Skrót fl działa tak samo i palce same go wpisują.
Składnia i najważniejsze opcje
Podstawowa forma to przekazanie obiektu przez potok:
-Property— wybiera, które właściwości pokazać; przyjmuje listę nazw, akceptuje symbole wieloznaczne (np.Name*).-Property *— pokazuje wszystkie właściwości obiektu, łącznie z tymi normalnie ukrytymi.-GroupBy— grupuje wynik według wartości wskazanej właściwości, dodając nagłówek przed każdą grupą.-View— używa zdefiniowanego widoku formatowania (z plików.ps1xml).-Force— wymusza wypisanie także właściwości oznaczonych jako ukryte/zaawansowane.-Expand— kontroluje rozwijanie kolekcji:CoreOnly,EnumOnlylubBoth.-DisplayError/-ShowError— pokazują błędy obliczania właściwości (przydatne przy wyrażeniach skryptowych).
Przykłady użycia
Get-Service WinRM | Format-List— wypisuje pełne szczegóły usługi WinRM, każde pole w osobnej linii.Get-Process pwsh | Format-List Name, Id, CPU, WorkingSet— pokazuje tylko wybrane właściwości procesu, bez reszty szumu.Get-Item C:\Windows\notepad.exe | Format-List *— wyświetla absolutnie wszystkie właściwości pliku, świetne do odkrywania, co obiekt w ogóle ma.Get-ChildItem C:\Temp | Format-List Name, Length -GroupBy Extension— listuje pliki pogrupowane według rozszerzenia.Get-CimInstance Win32_OperatingSystem | fl Caption, Version, LastBootUpTime— szybki podgląd kluczowych danych systemu za pomocą aliasufl.
Częste błędy i pułapki
Format-List służy wyłącznie do wyświetlania. Jego wynik to obiekty formatujące, nie dane. Jeśli zrobisz ... | Format-List | Export-Csv plik.csv, dostaniesz bezużyteczne śmieci typu FormatStartData zamiast realnych danych. Zasada: Format-* zawsze na samym końcu potoku, nigdy przed Export-Csv, ConvertTo-Json czy Where-Object.
Druga pułapka: gdy nie podasz -Property, PowerShell i tak może pokazać tylko podzbiór pól zdefiniowany w widoku domyślnym danego typu. Jeśli czegoś brakuje, dodaj * lub -Force. Pamiętaj też, że fl przy dziesiątkach obiektów wypluje ścianę tekstu — do przeglądania wielu rekordów lepsza jest tabela.
Powiązane komendy: Format-Table, Format-Wide, Select-Object, Get-Member, Out-String, Export-Csv.