Come esportare l'uscita in un file utilizzando PowerShell
-
Introduzione al comando
Out-Filein PowerShell -
Usa il parametro
-appendper 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