UnikajusingWriteHost

poziom ważności: ostrzeżenie

Opis

Ta reguła wykrywa użycie funkcji w Write-Host funkcjach, które nie używają czasownika Show . Write-Host jest zaprojektowany tak, aby generować wynik wyświetlany wyłącznie na nośniku, na przykład drukując kolorowy tekst lub pamiętując użytkowników do wprowadzania za pomocą Read-Host. Wykorzystuje tę metodę ToString() do zapisu wyników, a wyniki zależą od programu PowerShell.

Ponieważ Write-Host nie wysyła danych do pipeline, będziesz potrzebować Write-Output niejawnego wyjścia, aby przekazać dane w dół pipeline.

Unikaj używania Write-Host funkcji in, chyba że używają czasownika Show , który wyraźnie oznacza wyświetlanie informacji użytkownikowi. Ta reguła nie ma zastosowania do funkcji z czasownikiem Show.

Zamień Write-Host na Write-Output lub Write-Verbose w zależności od swoich intencji. Zastosowanie Write-Verbose do logowania i Write-Output zwracania obiektów.

Przykład

Niezgodne

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

Zgodne

Użyj Write-Verbose do obsługi komunikatów informacyjnych. Użytkownik może zdecydować, czy komunikat ma być wyświetlany, podając parametr Verbose.

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