Come esportare l'uscita in un file utilizzando PowerShell

  1. Introduzione al comando Out-File in PowerShell
  2. Usa il parametro -append per aggiungere a un file in PowerShell
  3. Cambia i dati di output in PowerShell
Come esportare l'uscita in un file utilizzando 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
Ti piacciono i nostri tutorial? Iscriviti a DelftStack su YouTube per aiutarci a creare altre guide video di alta qualità. Iscriviti
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

Articolo correlato - PowerShell Export