Out-File în PowerShell

Fișiere și foldere Windows PowerShell 1.0

Salvează într-un fișier ieșirea unei comenzi, exact cum apare în consolă; operatorii de redirecționare > și >> fac același lucru.

Sintaxă
Out-File [-FilePath] <string> [[-Encoding] <Encoding>] [-Append] [-NoClobber] [-Width <int>] [-NoNewline]
comandă > fișier
comandă >> fișier

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 200 sau $PSDefaultParameterValues['Out-File:Width'] = 2000 la începutul scriptului.
  • if ($a > 5) nu compară, ci creează un fișier numit 5 cu valoarea lui $a. În PowerShell, comparația „mai mare” se scrie -gt.
  • Un fișier scris cu Out-File nu se poate citi înapoi ca obiecte, ci doar ca text. Pentru date pe care vrei să le reimporți, folosește Export-Csv / Import-Csv sau JSON.
  • Scripturile vechi rulate în Windows PowerShell 5.1 produc fișiere UTF-16 cu >. Dacă un alt program are nevoie de UTF-8, scrie Out-File -Encoding utf8 sau 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.