AvoidUsingWriteHost

allvarlighetsgrad: Varning

Beskrivning

Denna regel upptäcker användning av Write-Host i funktioner som inte använder Show verbet. Write-Host är utformad för att producera display-endast utdata i värden, som att skriva ut färgad text eller be användare om inmatning med Read-Host. Den använder metoden ToString() för att skriva utdata, med resultat beroende av PowerShell-värdprogrammet.

Eftersom Write-Host den inte skickar output till pipelinen behöver Write-Output du eller implicit output för att skicka data genom pipelinen.

Undvik att använda Write-Host in functions om de inte använder Show verbet, vilket uttryckligen betyder att visa information för användaren. Den här regeln gäller inte för funktioner med Show verb.

Byt ut Write-Host mot Write-Output eller Write-Verbose beroende på din avsikt. Använd Write-Verbose för loggning och Write-Output för att returnera objekt.

Exempel

Ej överensstämmande

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

Godkänd

Använd Write-Verbose för informationsmeddelanden. Användaren kan bestämma om meddelandet ska visas genom att ange parametern Utförlig.

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'
}