PowerShell:
Scrivere sull'errore standard
Come fare:
PowerShell semplifica il processo di scrittura su stderr mediante l’uso del cmdlet Write-Error
o indirizzando l’output al metodo $host.ui.WriteErrorLine()
. Tuttavia, per la reindirizzazione diretta di stderr, potresti preferire l’uso di metodi .NET o la reindirizzazione dei descrittori di file offerta da PowerShell stesso.
Esempio 1: Utilizzo di Write-Error
per scrivere un messaggio di errore su stderr.
Write-Error "Questo è un messaggio di errore."
Output su stderr:
Write-Error: Questo è un messaggio di errore.
Esempio 2: Utilizzo di $host.ui.WriteErrorLine()
per una scrittura diretta su stderr.
$host.ui.WriteErrorLine("Scrittura diretta su stderr.")
Output su stderr:
Scrittura diretta su stderr.
Esempio 3: Utilizzo di metodi .NET per scrivere su stderr.
[Console]::Error.WriteLine("Utilizzo di metodo .NET per stderr")
Output di questo metodo:
Utilizzo di metodo .NET per stderr
Esempio 4: Reindirizzamento dell’output di errore usando il descrittore di file 2>
.
I descrittori di file in PowerShell possono reindirizzare diversi stream. Per stderr, il descrittore di file è 2
. Ecco un esempio di reindirizzamento di stderr su un file chiamato error.log
mentre si esegue un comando che genera un errore.
Get-Item FileInesistente.txt 2> error.log
Questo esempio non produce output sulla console, ma genera un file error.log
nella directory corrente contenente il messaggio di errore dal tentativo di accedere a un file che non esiste.
In conclusione, PowerShell fornisce molteplici metodi per scrivere e gestire efficacemente l’output di errore, consentendo strategie sofisticate di gestione degli errori e logging in script e applicazioni.