Come esportare l'uscita in un file utilizzando PowerShell
-
Introduzione al comando
Out-File
in PowerShell -
Usa il parametro
-append
per aggiungere a un file in PowerShell - Cambia i dati di output in PowerShell

Più linguaggi di scripting hanno funzioni o metodi per consentire di esportare i dati in un file. Anche nei giorni precedenti di MS-DOS, l’operatore di reindirizzamento legacy (>
) può comodamente farlo.
Questo articolo discuterà di come esportare i dati di output in un file, aggiungere dati a un file esistente e manipolare l’output utilizzando PowerShell.
Introduzione al comando Out-File
in PowerShell
Supponiamo di avere uno script che restituisce un elenco di tutti i servizi Windows sul tuo computer. Quando eseguiamo Get-Service
, riceverai tutti gli oggetti che ci si può aspettare nella console.
Ma potremmo voler salvare quell’output in un file di testo. Il comando Out-File
è un ottimo modo per fare ciò.
Possiamo usare Out-File
pipeando praticamente qualsiasi cosa tramite l’operatore di pipeline. Di seguito, possiamo vedere che lo script ha inviato l’output di Get-Service
al cmdlet, che ha creato un file di testo chiamato Services.txt
contenente la stessa visualizzazione sulla console.
Esempio di codice:
Get-Service | Out-File -FilePath C:\PS\Services.txt
Get-Content C:\PS\Services.txt
Output:
Status Name DisplayName
Stopped AJRouter AllJoyn Router Service
Stopped ALG Application Layer Gateway Service
<SNIP>
Usa il parametro -append
per aggiungere a un file in PowerShell
Per impostazione predefinita, il comando Out-File
sovrascrive qualsiasi cosa nel file di testo fornito tramite il parametro -FilePath
. Tuttavia, possiamo sovrascrivere questo comportamento utilizzando il parametro -Append
.
Forse stiamo accumulando output della console in un file e ci piacerebbe aggiungere testo a un file piuttosto che sovrascrivere. Il parametro -Append
è il tuo migliore amico.
Se non usiamo il parametro Out-File -Append
, il contenuto di C:\PS\File.txt
viene sovrascritto. Ma, non appena aggiungiamo il parametro -Append
, aggiunge l’output alla fine.
Esempio di codice:
'firststring' | Out-File -FilePath C:\PS\File.txt
Get-Content -Path C:\PS\File.txt
'secondstring' | Out-File -FilePath C:\PS\File.txt -Append
Get-Content C:\PS\File.txt
Output:
firststring
firststring
secondstring
Cambia i dati di output in PowerShell
Per impostazione predefinita, questo cmdlet tenterà di replicare ciò che è mostrato sulla console, ma ci sono alcuni modi per manipolarlo. Ad esempio, il cmdlet ha un parametro -NoNewLine
che rimuove tutti i caratteri di newline.
Esempio di codice:
Get-Service | Out-File -FilePath C:\PS\Services.txt -NoNewline
Get-Content C:\PS\Services.txt
Output:
Status Name DisplayName
------ ---- -----------
Stopped AJRouter AllJoyn Router Service
Stopped ALG Application La
Oppure, possiamo troncare il testo su ciascuna riga a un conteggio di caratteri particolare con il parametro -Width
.
Esempio di codice:
Get-Service | Out-File -FilePath C:\PS\Services.txt -Width 30
Get-Content C:\PS\Services.txt
Output:
Status Name DisplayName
------ ----- -----------
Stopped AJRouter Al
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn