Get-Content în PowerShell

Fișiere și foldere Windows PowerShell 1.0

Citește conținutul unui fișier ca listă de linii (sau ca un singur șir cu -Raw); poate afișa primele sau ultimele linii și urmări un log.

Sintaxă
Get-Content [-Path] <string[]> [-TotalCount <long>] [-Tail <int>] [-Raw] [-Wait] [-Encoding <Encoding>]

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ând Set-Content încearcă să scrie în el.
  • Get-Content pe un folder dă eroare: calea trebuie să fie a unui fișier. Pentru conținutul unui folder folosește Get-ChildItem.
  • Fișierele mari citite fără -Raw devin mii de obiecte în memorie. Pentru căutări, Select-String sau -ReadCount sunt 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.