Add-Content în PowerShell

Fișiere și foldere Windows PowerShell 1.0

Adaugă text la finalul unui fișier fără să șteargă conținutul existent; e potrivit pentru jurnale (loguri).

Sintaxă
Add-Content [-Path] <string[]> [-Value] <Object[]> [-Encoding <Encoding>] [-NoNewline] [-PassThru]

Ce face Add-Content

Add-Content adaugă valorile primite la sfârșitul unui fișier, câte una pe linie, și lasă neatins ce era deja acolo. Dacă fișierul nu există, îl creează. Este varianta „append” a lui Set-Content și se folosește des pentru jurnale simple în scripturi.

Valoarea poate veni din -Value sau din pipeline (de exemplu, liniile citite cu Get-Content dintr-un alt fișier). Obiectele sunt transformate în text înainte de scriere, ca la Set-Content.

În PowerShell 7, codificarea implicită este utf8NoBOM. Dacă adaugi într-un fișier creat cu altă codificare (de exemplu UTF-16, cum produce Out-File în Windows PowerShell 5.1), specifică aceeași codificare cu -Encoding, altfel fișierul ajunge amestecat. Aliasul ac există doar pe Windows.

Parametri

Parametru Descriere
-Path Fișierul (sau fișierele) la care adaugi; acceptă wildcard-uri.
-Value Textul de adăugat; un tablou devine mai multe linii. Poate veni și din pipeline.
-Encoding Codificarea folosită la scriere (implicit utf8NoBOM în 7).
-NoNewline Nu adaugă linie nouă după text.
-PassThru Întoarce textul adăugat, ca să-l vezi și în consolă.
-Force Adaugă și într-un fișier marcat doar pentru citire.

Ce returnează

Nimic implicit; cu -PassThru, un String cu textul adăugat.

Exemple

Exemplul 1: Un jurnal simplu

Fiecare apel adaugă o linie nouă la final; liniile vechi rămân.

Add-Content -Path C:\Proiecte\jurnal.log -Value '2026-10-25 09:30 Backup facturi: reușit'
Add-Content -Path C:\Proiecte\jurnal.log -Value '2026-10-25 10:00 Sincronizare Cluj: reușită'
Get-Content -Path C:\Proiecte\jurnal.log

Ieșire în terminal

2026-10-25 09:30 Backup facturi: reușit
2026-10-25 10:00 Sincronizare Cluj: reușită

Exemplul 2: Adaugă și afișează în același timp

-PassThru trimite textul adăugat și în consolă. Data vine din Get-Date -Format.

$linie = "$(Get-Date -Format 'yyyy-MM-dd HH:mm') Factură trimisă: Ana Popescu, 250 lei"
Add-Content -Path .\jurnal.log -Value $linie -PassThru

Ieșire în terminal

2026-10-25 11:15 Factură trimisă: Ana Popescu, 250 lei

Exemplul 3: Lipește conținutul unui fișier la finalul altuia

Liniile citite din note-noi.txt ajung prin pipeline la finalul lui note.txt.

Get-Content -Path .\note-noi.txt | Add-Content -Path .\note.txt
Get-Content -Path .\note.txt -Tail 2

Ieșire în terminal

Elena Dumitru,9.25
Andrei Stan,8.50

Greșeli frecvente

  • Add-Content -Path .\total.txt -Value .\note.txt adaugă textul „.\note.txt”, nu conținutul fișierului. Citește întâi fișierul: -Value (Get-Content .\note.txt) sau prin pipeline.
  • Rularea aceluiași script de mai multe ori dublează liniile. Dacă fișierul trebuie refăcut de la zero, folosește Set-Content pentru prima linie sau șterge fișierul la început.
  • Combinarea codificărilor: un fișier creat în Windows PowerShell 5.1 cu Out-File sau > este UTF-16. Dacă adaugi în el cu UTF-8 (implicit în PowerShell 7), liniile noi pot apărea stricate. Adaugă cu -Encoding unicode sau refă fișierul într-o singură codificare.

Comenzi înrudite

  • Set-Content: Scrie text într-un fișier și înlocuiește tot conținutul existent; creează fișierul dacă nu există.
  • Get-Content: 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.
  • 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-Date: Get-Date întoarce data și ora curentă (sau una dată) ca obiect [datetime], pe care îl formatezi cu -Format și îl calculezi cu .AddDays().