Ce face Get-Content
Get-Content citește un fișier text linie cu linie și întoarce un tablou de șiruri, câte unul pentru fiecare linie. Asta înseamnă că poți număra liniile cu .Count, poți lua o anumită linie cu [index] sau poți trimite liniile prin pipeline la Where-Object și ForEach-Object.
Din Windows PowerShell 3.0 poți cere doar începutul fișierului (-TotalCount, aliasuri -First și -Head) sau sfârșitul lui (-Tail, alias -Last), iar -Raw întoarce tot fișierul ca un singur șir, cu liniile noi păstrate. -Wait ține fișierul deschis și afișează liniile noi pe măsură ce apar, ca tail -f; îl oprești cu Ctrl+C.
În PowerShell 7, codificarea implicită este utf8NoBOM, deci fișierele UTF-8 cu diacritice se citesc corect. Aliasuri: gc și type pe toate sistemele, cat doar pe Windows.
Parametri
| Parametru | Descriere |
|---|---|
-Path |
Fișierul (sau fișierele) de citit; acceptă wildcard-uri. Trebuie să fie fișiere, nu foldere. |
-TotalCount |
Primele N linii (aliasuri -First, -Head). |
-Tail |
Ultimele N linii (alias -Last). |
-Raw |
Întoarce tot conținutul ca un singur String, nu ca tablou de linii. Nu se poate combina cu -Wait. |
-Wait |
Rămâne deschis și verifică fișierul o dată pe secundă, afișând liniile noi, până la Ctrl+C. |
-Encoding |
Codificarea fișierului: utf8NoBOM (implicit în 7), utf8BOM, unicode, ansi (din 7.4), oem etc. |
-Delimiter |
Alt separator decât sfârșitul de linie pentru împărțirea conținutului. |
-AsByteStream |
Citește octeți în loc de text (din PowerShell 6.0). |
Ce returnează
Un tablou de String (câte o linie); cu -Raw, un singur String; cu -AsByteStream, octeți.
Exemple
Exemplul 1: Primele linii dintr-un fișier
-TotalCount 3 citește doar primele trei linii din lista de note.
Get-Content -Path .\note.txt -TotalCount 3
Ieșire în terminal
Ana Popescu,9.50
Mihai Ionescu,8.75
Ioana Marin,10
Exemplul 2: Ultimele intrări dintr-un log
-Tail 2 afișează ultimele două linii. Cu -Wait adăugat, comanda ar rămâne deschisă și ar afișa liniile noi.
Get-Content -Path C:\Proiecte\jurnal.log -Tail 2
Ieșire în terminal
2026-10-25 09:30 Backup facturi: reușit
2026-10-25 10:00 Sincronizare Cluj: reușită
Exemplul 3: Tablou de linii sau un singur șir
Fără -Raw primești un tablou (Object[]) cu 4 elemente; cu -Raw primești un singur String.
$linii = Get-Content -Path .\note.txt
$linii.Count
$linii.GetType().Name
(Get-Content -Path .\note.txt -Raw).GetType().Name
Ieșire în terminal
4
Object[]
String
Greșeli frecvente
- Un fișier cu o singură linie întoarce un
String, nu un tablou. Dacă scriptul folosește[0]sau.Count, forțează tabloul:$linii = @(Get-Content .\note.txt). - Pentru a înlocui text în același fișier, pune citirea între paranteze:
(Get-Content .\note.txt) -replace 'Cluj','Iași' | Set-Content .\note.txt. Fără paranteze, fișierul e încă deschis pentru citire cândSet-Contentîncearcă să scrie în el. Get-Contentpe un folder dă eroare: calea trebuie să fie a unui fișier. Pentru conținutul unui folder foloseșteGet-ChildItem.- Fișierele mari citite fără
-Rawdevin mii de obiecte în memorie. Pentru căutări,Select-Stringsau-ReadCountsunt mai eficiente.
Comenzi înrudite
Set-Content: Scrie text într-un fișier și înlocuiește tot conținutul existent; creează fișierul dacă nu există.Add-Content: Adaugă text la finalul unui fișier fără să șteargă conținutul existent; e potrivit pentru jurnale (loguri).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.ForEach-Object: Rulează un bloc de cod pentru fiecare obiect din pipeline; din PowerShell 7.0 poate rula blocurile în paralel cu -Parallel.Where-Object: Filtrează obiectele din pipeline și le lasă să treacă doar pe cele care îndeplinesc o condiție.