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 stderrEsempio 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.logQuesto 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.