Ce face Format-Table
Format-Table (alias ft) afișează fiecare obiect pe un rând și fiecare proprietate într-o coloană. Pentru obiectele fără o vizualizare predefinită (de exemplu cele create cu [pscustomobject]), PowerShell alege singur tabelul când au cel mult patru proprietăți și lista pentru cele cu mai multe; cu Format-Table forțezi tabelul și alegi coloanele.
Coloanele pot fi calculate cu un hashtable: Label (sau Name), Expression, plus opțional FormatString, Width și Alignment (Left, Center, Right). Numerele se aliniază la dreapta, textul la stânga. -Wrap mută pe rândul următor textul care nu încape, în loc să-l taie.
Format-Table produce obiecte de formatare, nu date. Pune-l ultimul în pipeline, doar pentru afișare. Din PowerShell 7.2, culoarea antetului se schimbă din $PSStyle.Formatting.TableHeader.
Parametri
| Parametru | Descriere |
|---|---|
-Property |
Coloanele afișate, în ordine; acceptă wildcard-uri și coloane calculate. |
-AutoSize |
Ajustează lățimea coloanelor după conținut. |
-Wrap |
Continuă pe rândul următor textul prea lung, în loc să-l trunchieze. |
-GroupBy |
Afișează câte un tabel separat pentru fiecare valoare; datele trebuie sortate înainte. |
-HideTableHeaders |
Ascunde antetul tabelului. |
-RepeatHeader |
Repetă antetul după fiecare ecran (util cu more / less). |
-View |
Folosește o vizualizare de tabel definită (nu se poate combina cu -Property). |
Ce returnează
Obiecte de formatare (Microsoft.PowerShell.Commands.Internal.Format) folosite doar pentru afișare.
Exemple
Exemplul 1: Tabel pentru obiecte cu cinci proprietăți
Cu cinci proprietăți, PowerShell le-ar afișa implicit ca listă; Format-Table le pune într-un tabel.
$elevi = @(
[pscustomobject]@{ Nume = 'Ana'; Prenume = 'Pop'; Oras = 'Iași'; Nota = 9; Varsta = 17 }
[pscustomobject]@{ Nume = 'Mihai'; Prenume = 'Ionescu'; Oras = 'Cluj'; Nota = 7; Varsta = 18 }
)
$elevi | Format-Table
Ieșire în terminal
Nume Prenume Oras Nota Varsta
---- ------- ---- ---- ------
Ana Pop Iași 9 17
Mihai Ionescu Cluj 7 18
Exemplul 2: Coloane alese și o coloană calculată
Afișăm produsul, cantitatea și un total calculat, fără să schimbăm obiectele.
$produse = @(
[pscustomobject]@{ Produs = 'Cafea'; Pret = 25; Cantitate = 4 }
[pscustomobject]@{ Produs = 'Ceai'; Pret = 12; Cantitate = 10 }
)
$produse | Format-Table -Property Produs, Cantitate, @{ Label = 'Total (lei)'; Expression = { $_.Pret * $_.Cantitate } } -AutoSize
Ieșire în terminal
Produs Cantitate Total (lei)
------ --------- -----------
Cafea 4 100
Ceai 10 120
Exemplul 3: De ce Format-Table trebuie să fie ultimul
Rezultatul nu mai conține produsele, ci obiecte interne de formatare.
$produse = @(
[pscustomobject]@{ Produs = 'Cafea'; Pret = 25 }
[pscustomobject]@{ Produs = 'Ceai'; Pret = 12 }
)
$tabel = $produse | Format-Table
$tabel[0].GetType().Name
Ieșire în terminal
FormatStartData
Greșeli frecvente
... | Format-Table | Export-Csvsau| Where-ObjectdupăFormat-Table: comenzile următoare primesc obiecte de formatare, iar fișierul CSV conține coloane caClassId2e4f51ef21dd47e99d3c952918aff9cd. Selectează coloanele cuSelect-Objectși formatează doar la final.- Coloanele tăiate cu „…” nu înseamnă date lipsă: e doar lățimea ferestrei. Folosește
-Wrap,-AutoSizesauFormat-List. -GroupBype date nesortate creează mai multe tabele pentru aceeași valoare; sortează întâi cuSort-Objectdupă aceeași proprietate.
Comenzi înrudite
Format-List: Afișează fiecare proprietate a obiectelor pe un rând separat, sub forma „Nume : valoare”.Select-Object: Alege doar anumite proprietăți ale obiectelor, adaugă proprietăți calculate sau păstrează primele, ultimele ori unicele elemente.Export-Csv: Salvează obiectele într-un fișier CSV: un rând de antet cu numele proprietăților și câte un rând pentru fiecare obiect.Out-File: Salvează într-un fișier ieșirea unei comenzi, exact cum apare în consolă; operatorii de redirecționare > și >> fac același lucru.Get-Member: Arată tipul obiectelor dintr-un pipeline și ce proprietăți și metode au, ca să știi ce poți selecta, filtra sau apela.