Compartilhar via


AvoidUsingWriteHost

Nível de gravidade: aviso

Descrição

A principal finalidade do cmdlet Write-Host é produzir a saída somente exibição no host. Por exemplo: imprimir texto colorido ou solicitar entrada ao usuário quando combinado com Read-Host. Write-Host usa o método ToString() para gravar a saída. O resultado específico depende do programa que está hospedando o PowerShell. A saída de Write-Host não é enviada para o pipeline. Para gerar dados para o pipeline, use Write-Output ou saída implícita.

O uso de Write-Host em uma função é desencorajado, a menos que a função use o verbo Show. O verbo Show significa explicitamente exibir informações para o usuário. Essa regra não se aplica a funções com o verbo Show.

Como

Substitua Write-Host por Write-Output ou Write-Verbose dependendo se a intenção é registrar em log ou retornar um ou mais objetos.

Exemplo

Errado

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

Correto

Use Write-Verbose para mensagens informativas. O usuário pode decidir se deseja ver a mensagem fornecendo o parâmetro detalhado .

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

Mais informações

de host de gravação