Ce face Out-File
Out-File trimite ieșirea unei comenzi într-un fișier, formatată la fel ca în consolă: un tabel rămâne tabel, cu antet și linii de liniuțe. Este bun pentru rapoarte citite de oameni, nu pentru date prelucrate ulterior; pentru acestea folosește Export-Csv sau ConvertTo-Json. Implicit, fișierul existent este suprascris fără avertisment; -Append adaugă la final, iar -NoClobber refuză suprascrierea.
Operatorul > este echivalent cu | Out-File fără alți parametri, iar >> cu | Out-File -Append. Poți redirecționa și alte fluxuri: 2> pentru erori, *> pentru toate. Din PowerShell 7.4, ieșirea unei comenzi native (de exemplu curl) redirecționată cu > este salvată ca octeți, fără conversie.
În PowerShell 7, atât Out-File, cât și > și >> scriu implicit în utf8NoBOM. În Windows PowerShell 5.1, implicit era unicode (UTF-16 LE), ceea ce producea fișiere de două ori mai mari, pe care unele programe le afișează cu spații între litere.
Parametri
| Parametru | Descriere |
|---|---|
-FilePath |
Fișierul de ieșire (alias -Path). |
-Append |
Adaugă la finalul fișierului în loc să-l suprascrie (ca >>). |
-NoClobber |
Nu suprascrie un fișier existent; dă eroare în loc (alias -NoOverwrite). |
-Encoding |
Codificarea: utf8NoBOM (implicit în 7), utf8BOM, unicode, ascii, ansi (din 7.4) etc. |
-Width |
Lățimea maximă a liniilor; textul mai lung este tăiat. Implicit, lățimea consolei. |
-NoNewline |
Nu adaugă linie nouă între obiecte și la final. |
-InputObject |
Obiectele de scris, în loc de pipeline. |
-Force |
Suprascrie și un fișier doar pentru citire. |
Ce returnează
Nimic; scrie doar în fișier.
Exemple
Exemplul 1: Salvează o listare de fișiere într-un raport
Fișierul conține exact textul pe care l-ai fi văzut în consolă.
Get-ChildItem -Path C:\Proiecte\rapoarte | Out-File -FilePath C:\Proiecte\lista-rapoarte.txt
Get-Content -Path C:\Proiecte\lista-rapoarte.txt
Ieșire în terminal
Directory: C:\Proiecte\rapoarte
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 10/25/2026 9:10 AM 2026
-a--- 10/24/2026 4:02 PM 24576 vanzari-cluj.xlsx
-a--- 10/24/2026 4:05 PM 23040 vanzari-iasi.xlsx
Exemplul 2: Redirecționare cu > și >>
> creează (sau suprascrie) fișierul, >> adaugă o linie la final.
'Raport vânzări Cafenea Iași' > .\raport.txt
'Total octombrie: 12.450 lei' >> .\raport.txt
Get-Content -Path .\raport.txt
Ieșire în terminal
Raport vânzări Cafenea Iași
Total octombrie: 12.450 lei
Exemplul 3: Protejează un fișier existent cu -NoClobber
Fișierul raport.txt există deja, deci Out-File refuză să-l suprascrie.
Get-Date | Out-File -FilePath .\raport.txt -NoClobber
Ieșire în terminal
Out-File: The file 'C:\Proiecte\raport.txt' already exists.
Greșeli frecvente
- Tabelele late sunt tăiate la lățimea consolei (de exemplu 80 de caractere). Folosește
-Width 200sau$PSDefaultParameterValues['Out-File:Width'] = 2000la începutul scriptului. if ($a > 5)nu compară, ci creează un fișier numit5cu valoarea lui$a. În PowerShell, comparația „mai mare” se scrie-gt.- Un fișier scris cu
Out-Filenu se poate citi înapoi ca obiecte, ci doar ca text. Pentru date pe care vrei să le reimporți, foloseșteExport-Csv/Import-Csvsau JSON. - Scripturile vechi rulate în Windows PowerShell 5.1 produc fișiere UTF-16 cu
>. Dacă un alt program are nevoie de UTF-8, scrieOut-File -Encoding utf8sau rulează scriptul în PowerShell 7.
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).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.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.Format-Table: Afișează obiectele ca tabel, cu coloanele alese de tine, inclusiv coloane calculate.Operatori de comparație: PowerShell compară cu -eq, -ne, -gt, -lt, -like, -match, -contains, -in, nu cu = sau >; implicit nu ține cont de majuscule.