AvoidUsingWriteHost

ernstniveau: waarschuwing

Beschrijving

Deze regel detecteert het gebruik van Write-Host in functies die het Show werkwoord niet gebruiken. Write-Host is ontworpen om alleen weergave-output in de host te produceren, zoals het printen van gekleurde tekst of het vragen van gebruikers om invoer met Read-Host. Het gebruikt de ToString() methode om output te schrijven, met resultaten die afhangen van het PowerShell-hostprogramma.

Omdat Write-Host het geen output naar de pipeline stuurt, heb je impliciete output nodig Write-Output om data door de pipeline te sturen.

Vermijd het gebruik Write-Host van in-functies tenzij ze het Show werkwoord gebruiken, wat expliciet betekent dat je informatie aan de gebruiker moet tonen. Deze regel is niet van toepassing op functies met het Show werkwoord.

Vervang Write-Host door Write-Output of Write-Verbose , afhankelijk van je intentie. Gebruik Write-Verbose het voor logging en voor het terugkeren van objecten Write-Output .

Voorbeeld

Niet conform

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

Compliant

Gebruik Write-Verbose voor informatieve berichten. De gebruiker kan bepalen of het bericht moet worden weergegeven door de uitgebreide parameter op te geven.

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