AvoidUsingWriteHost

livello di gravità : avviso

Descrizione

Questa regola rileva l'uso di Write-Host in funzioni che non usano il Show verbo. Write-Host è progettato per produrre output solo di visualizzazione nell'host, come stampare testo a colori o chiedere agli utenti di input con Read-Host. Utilizza il ToString() metodo per scrivere l'output, con risultati che dipendono dal programma host PowerShell.

Poiché Write-Host non invia output alla pipeline, avrai bisogno Write-Output di un output implicito per far passare i dati lungo la pipeline.

Evita di usare Write-Host in funzioni a meno che non usino il verbo Show , che significa esplicitamente visualizzare le informazioni all'utente. Questa regola non si applica alle funzioni con il verbo Show.

Sostituisci Write-Host con Write-Output o Write-Verbose in base alla tua intenzione. Usa Write-Verbose per il logging e Write-Output per restituire oggetti.

Esempio

Non conforme

function Get-MeaningOfLife
{
    Write-Host 'Computing the answer to the ultimate question of life, the universe and everything'
    Write-Host 42
}

Compliant

Usare Write-Verbose per i messaggi informativi. L'utente può decidere se visualizzare il messaggio specificando il parametro dettagliato .

function Get-MeaningOfLife {
    [CmdletBinding()]Param() # makes it possible to support Verbose output

    Write-Verbose 'Computing the answer to the ultimate question of life, the universe and everything'
    Write-Output 42
}

function Show-Something {
    Write-Host 'Show something on screen'
}