Se sei alla ricerca di un cmdlet di PowerShell che possa memorizzare l’output in un file di testo, sei fortunato. Stai per imparare come utilizzare il cmdlet Out-File
di PowerShell insieme al suo popolare parametro Out-File -Append
anche!
Come Funziona Out-File?
Questo cmdlet di PowerShell è semplice nella sua natura; il suo unico scopo è memorizzare l’output ricevuto e salvarlo in un file di testo.
È stato progettato per sostituire l’operatore standard di reindirizzamento output (>
). Anche dai tempi del DOS, potevamo reindirizzare l’output in un file. Questo cmdlet è il modo PowerShell per farlo.
Il cmdlet Out-File
viene tipicamente utilizzato alla fine del pipeline di PowerShell. Il suo unico scopo è inviare l’output grezzo direttamente a un file di testo senza preoccuparsi di altro. Ci sono pochi modi minimi per personalizzare il modo in cui quell’output viene scritto.
Invio dell’Output a un File
Immaginiamo di avere uno script che restituisce un elenco di tutti i servizi di Windows sul tuo computer. Quando esegui Get-Service
, riceverai tutti gli oggetti che ti aspetti sulla console.
Ma forse vorresti salvare quell’output in un file di testo. Il cmdlet Out-File
è un ottimo modo per farlo. Puoi utilizzarlo passando praticamente qualsiasi cosa attraverso di esso tramite il pipeline.
Puoi vedere qui sotto che l’output del comando Get-Service
è stato inviato al cmdlet che ha creato un file di testo chiamato Services.txt, che contiene l’esatta visualizzazione che vedi sulla console.
Aggiunta a un file
Per impostazione predefinita, sovrascrive qualsiasi cosa nel file di testo fornito tramite il parametro FilePath
. Tuttavia, puoi annullare questo comportamento utilizzando il parametro Append
.
Forse stai accumulando l’output della console in un file e vorresti aggiungere del testo a un file anziché sovrascriverlo. Il parametro Append
è il tuo migliore amico.
Utilizzando il parametro Out-File -Append
, puoi vedere qui sotto che se non lo usi, il file C:\File.txt viene sovrascritto. Ma, non appena aggiungi il parametro Append
, aggiunge l’output alla fine.
Cambiare l’output
In modo predefinito, questo cmdlet cercherà di replicare ciò che viene mostrato sulla console, ma ci sono alcune modalità per manipolarlo. Ad esempio, il cmdlet ha un parametro NoNewLine
che rimuove semplicemente tutti i caratteri di nuova riga.
In alternativa, puoi interrompere il testo su ogni riga a una determinata lunghezza di caratteri anche con il parametro Width
.
Conclusioni

In uno scenario del mondo reale, questo cmdlet funziona, ma ci sono modi migliori per memorizzare l’output su un file.
Questo cmdlet non fornisce opzioni reali per manipolare l’output. Salva semplicemente l’output esattamente come mostrato sulla console. Questo cmdlet è simile a una trascrizione di PowerShell che scrive tutto direttamente su un file di testo.
I Add-Content
o i cmdlet Set-Content
avranno sempre maggiore flessibilità, ma se hai bisogno di un modo rapido per ottenere l’output di PowerShell in un file, Out-File
è la strada da seguire.
Correlato: Set-Content: Il Modo di PowerShell per Scrivere su un File