Come generare messaggi informativi in PowerShell

  1. Introduzione all’Exporting Output in PowerShell
  2. il Cmdlet Write-Output in PowerShell
  3. il Cmdlet Write-Host e Write-Information in PowerShell
  4. il Cmdlet Write-Warning in PowerShell
  5. il Cmdlet Write-Debug in PowerShell
  6. il Cmdlet Write-Error in PowerShell
  7. il Cmdlet Write-Verbose in PowerShell
Come generare messaggi informativi in PowerShell

Scrivere messaggi informativi nella console è un processo essenziale in qualsiasi linguaggio poiché fornisce feedback corretto all’utente. Tuttavia, ci sono molteplici modi per stampare messaggi in Windows PowerShell.

Questo articolo differenzierà i vari comandi di scrittura come scrivere messaggi informativi, di avviso e di errore e fornirà situazioni in cui e dove possiamo usarli.

Introduzione all’Exporting Output in PowerShell

Prima di iniziare a discutere i diversi comandi di scrittura, vale la pena notare che PowerShell può generare un messaggio racchiudendo una singola riga tra virgolette singole ('') o doppie ("").

Esempio di Codice:

"Hello World!"
'Hello World'

Output:

Hello World!
Hello World

Questa sintassi è possibile in PowerShell grazie all’espressione letterale della stringa e al pipeline della stringa nascosta. I vari frammenti di codice sopra sono equivalenti all’esempio di codice sottostante.

Esempio di Codice:

"Hello World!" | Out-Host

Il comando Out-Host invia gli oggetti preceduti per la visualizzazione sulla console.

il Cmdlet Write-Output in PowerShell

Il primo metodo di stampa è il comando Write-Output. Questo cmdlet è la sintassi più basilare di tutti i metodi di stampa all’interno dell’ambiente di scripting di PowerShell.

Possiamo paragonarlo a molti diversi metodi basilari di stampa di linguaggi come print e stdout.

Esempio di Codice:

Write-Output "Hello World!"

Output:

Hello World!

il Cmdlet Write-Host e Write-Information in PowerShell

Il comando Write-Host è un altro metodo di stampa simile al modo precedente, Write-Output.

L’unica differenza di questo comando prima che fosse aggiornato in PowerShell 5.0 è che il metodo può generare solo messaggi con colori diversi utilizzando i parametri -BackgroundColor e -ForegroundColor.

Come accennato, a partire da Windows PowerShell 5.0, Write-Host è ora un wrapper per Write-Information. Questo ci permette di usare Write-Host per emettere output nel flusso informativo.

Questo cmdlet consente la soppressione o la cattura dei dati scritti utilizzando il comando Write-Host mantenendo la compatibilità retroattiva.

La variabile di preferenza $InformationPreference e il parametro standard -InformationAction non influenzano i messaggi di Write-Host. L’eccezione a questa regola è -InformationAction Ignore, che sopprime effettivamente l’output di Write-Host.

Scrivere nel flusso informativo utilizzando Write-Host o Write-information non creerà problemi con la tua stringa di output.

Possiamo anche manipolare la visibilità del flusso informativo se usiamo il parametro -InformationAction, a condizione che associamo anche il valore del parametro dato alle istruzioni Write-Host nella funzione.

Ad esempio, l’esempio sottostante disabiliterà il flusso informativo per impostazione predefinita, a meno che non venga richiesto diversamente attraverso il parametro -InformationAction.

Write-Host 'This is a test message' -InformationAction $InformationPreference -ForegroundColor Green

il Cmdlet Write-Warning in PowerShell

Il comando Write-Warning scrive un messaggio di avviso sull’host di Windows PowerShell. La risposta all’evento di avviso dipende dal valore della variabile $WarningPreference dell’utente e dal parametro standard -WarningAction.

I valori validi della variabile $WarningPreference sono i seguenti.

  1. Stop - Visualizza i messaggi di avviso e di errore e poi interrompe l’esecuzione.
  2. Inquire - Visualizza il messaggio di avviso e richiede all’utente il permesso di continuare sotto forma di un messaggio di conferma.
  3. Continue - Il valore predefinito della variabile. Visualizza il messaggio di avviso e poi lo esegue.
  4. SilentlyContinue - Non visualizza il messaggio di avviso. Continua ad eseguire.

Esempio di Codice:

Write-Warning "This is only a test warning notification." -WarningAction Continue

il Cmdlet Write-Debug in PowerShell

Il comando Write-Debug è anche un altro metodo per stampare in PowerShell. Tuttavia, questo viene solitamente utilizzato di più nello sviluppo per stampare messaggi di debug nell’ambiente di scripting.

I messaggi di debug non vengono visualizzati per impostazione predefinita, ma possono essere cambiati utilizzando la variabile $debugPreference.

Esempio di Codice:

Write-Debug "Error on line 1. Please investigate."
$debugPreference = "Continue"
Write-Debug "Error on line 5. Please investigate."

Output:

DEBUG: Error on line 5. Please investigate.

il Cmdlet Write-Error in PowerShell

Il comando Write-Error genera un errore non terminante. Per impostazione predefinita, gli errori vengono inviati nel flusso di errore al programma host di PowerShell per essere esportati insieme all’output.

Per generare un errore non terminante, inserisci una stringa di messaggio di errore, un oggetto ErrorRecord o un oggetto Exception. Quindi, usa i diversi parametri di Write-Error per popolare il record di errore che esportiamo.

Gli errori non terminanti scriveranno un errore nel flusso di errore, ma non fermeranno l’elaborazione del comando. Ad esempio, se un errore non terminante viene generato su un elemento in un insieme di elementi di input, il cmdlet continua a elaborare gli altri elementi.

Esempio di Codice:

Write-Error "Invalid object" -ErrorId B1 -TargetObject $_

Output:

Write-Error "Invalid object" -ErrorId B1 -TargetObject $_ : Invalid object
    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : B1

il Cmdlet Write-Verbose in PowerShell

Il comando Write-Verbose scrive testo nel flusso di messaggi dettagliati in PowerShell.

Come il comando Write-Debug, il messaggio dettagliato non viene visualizzato per impostazione predefinita, ma può essere visualizzato utilizzando la variabile $VerbosePreference o aggiungendo il parametro switch -Verbose.

Esempio di Codice:

Write-Verbose -Message "This will not be displayed."
Write-Verbose -Message "This will be displayed" -Verbose

Output:

VERBOSE: This will be displayed
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