AvoidUsingWriteHost

Önem Derecesi: Uyarı

Açıklama

Bu kural, fiil kullanmayan in fonksiyonlarının Show kullanımını Write-Host tespit eder. Write-Hostsunucuda sadece görüntü için çıktı üretecek şekilde tasarlanmıştır; örneğin renkli metin baskısı veya kullanıcılardan giriş için sormak gibi.Read-Host Çıktı yazmak için bu ToString() yöntemi kullanır ve sonuçlar PowerShell ana programına bağlıdır.

Çıktıyı pipeline'a göndermediği Write-Host için, veri iletebilmek için örtük çıktıya ihtiyacınız Write-Output olur.

In Write-Host fonksiyonlarını kullanmaktan kaçının, ancak fiil Show kullanılmadıkça bu fiil açıkça kullanıcıya bilgi göstermek anlamına gelir. Bu kural, Show fiiline sahip işlevler için geçerli değildir.

Niyetinize göre Write-Host yerine Write-Output veya Write-Verbose ile değiştirin. Kayıt ve Write-Output nesneleri geri göndermek için kullanılırWrite-Verbose.

Örnek

Standartlara Uygun Değil

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

Compliant

Bilgilendiren iletiler için Write-Verbose kullanın. Kullanıcı, Ayrıntılı parametresini sağlayarak iletiyi görüp göremeyeceğine karar verebilir.

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