AvoidUsingWriteHost

úroveň závažnosti : Upozornění

Popis

Toto pravidlo detekuje použití ve Write-Host funkcích, které sloveso Show nepoužívají. Write-Host je navržen tak, aby generoval výstup pouze pro zobrazení v hostiteli, například tisk barevného textu nebo vyzývání uživatelů k zadání pomocí Read-Host. Používá tuto ToString() metodu pro zápis výstupů, přičemž výsledky závisí na hostitelském programu PowerShell.

Protože Write-Host neposílá výstup do pipeline, budete potřebovat Write-Output implicitní výstup pro předání dat dál pipeline.

Vyhněte se používání Write-Host funkcí in, pokud nepoužívají Show sloveso, což výslovně znamená zobrazit uživateli informace. Toto pravidlo se nevztahuje na funkce s příkazem Show.

Nahraďte Write-Host Write-Output nebo Write-Verbose podle svého záměru. Použití Write-Verbose pro logování a Write-Output vracení objektů.

Příklad

Nesplňující

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

Kompatibilní

Pro informační zprávy použijte Write-Verbose. Uživatel se může rozhodnout, jestli se má zpráva zobrazit zadáním parametru Podrobné.

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