Come produrre output su un file in Powershell con Out-File e Export-Csv Cmdlet?
Out-File è un cmdlet fornito dalle librerie di base di Powershell. Questo cmdlet fornisce funzioni per scrivere l’output creato in un file nel file system. In questo tutorial, vedremo diversi modi per scrivere l’output in un file con Out-File
e Export-CSV
cmdlets.
Uno degli scenari di utilizzo di base di out-file è scrivere l’output in un file senza modificarlo. In questo esempio scriveremo l’output del comando Get-Process
in un file chiamato process.txt
tramite piping. Il nome del file può essere specificato come percorso completo come C:\user\process.txt
PS> Get-Process | Out-File process.txt
Append Into Existing File
Se vogliamo solo aggiungere nuove righe e non vogliamo rimuovere i dati esistenti dovremmo aggiungere nuovi dati con l’opzione -Append
come sotto.
PS> Get-Process | Out-File -Append process.txt
Scrivi come CSV
Possiamo scrivere l’output creato in un file in formato CSV. Il formato CSV delimita le colonne con la virgola. Useremo Export-Csv
cmdlet per questa operazione. Questo richiederà più tempo rispetto alla scrittura grezza nel file perché la riga sarà separata e ogni colonna sarà delimitata con il comando.
PS> Get-Process | Export-Csv test.txt
Scrivere sia su file che su console
Un’altra caratteristica molto usata è quella di scrivere l’output in un file stampandolo anche nella console. Questo fornirà informazioni verbose sull’output. Useremo Tee-Object
che è ereditato dal sistema operativo Linux.
In questo esempio otteniamo dir
l’output del comando nella console e il file chiamato dirs.txt
PS> Dir | Tee-Object -f dirs.txt