HindariUsingWriteHost

Tingkat Keparahan : Peringatan

Deskripsi

Aturan ini mendeteksi penggunaan Write-Host fungsi dalam yang tidak menggunakan Show kata kerja. Write-Host dirancang untuk menghasilkan output khusus tampilan di host, seperti mencetak teks berwarna atau meminta pengguna untuk input dengan Read-Host. Ini menggunakan ToString() metode untuk menulis output, dengan hasil tergantung pada program host PowerShell.

Karena Write-Host tidak mengirim output ke alur, Anda memerlukan Write-Output atau output implisit untuk meneruskan data ke alur.

Hindari penggunaan Write-Host dalam fungsi kecuali mereka menggunakan Show kata kerja, yang secara eksplisit berarti menampilkan informasi kepada pengguna. Aturan ini tidak berlaku untuk fungsi dengan kata kerja Show.

Ganti Write-Host dengan Write-Output atau Write-Verbose berdasarkan niat Anda. Gunakan Write-Verbose untuk pencatatan dan Write-Output untuk mengembalikan objek.

Contoh

Tidak sesuai

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

Sesuai

Gunakan Write-Verbose untuk pesan informasi. Pengguna dapat memutuskan apakah akan melihat pesan dengan memberikan parameter 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'
}