AvoidUsingWriteHost

уровень серьезности : предупреждение

Описание

Это правило обнаруживает использование Write-Host функций in в которых не используется глагол Show . Write-Host предназначена для создания вывода только с отображением на хосте, например, печати цветного текста или запроса пользователей на ввод с Read-Hostпомощью . Он использует этот ToString() метод для записи выводов, при этом результаты зависят от хост-программы PowerShell.

Поскольку Write-Host вывод не отправляется в конвейер, для передачи данных по конвейеру потребуется Write-Output или неявный вывод.

Избегайте использования Write-Host функций, если только они не используют Show глагол, что явно означает отображать информацию пользователю. Это правило не применяется к функциям с помощью команды Show.

Замените Write-Host на Write-Output или Write-Verbose в зависимости от вашего замысла. Используйте Write-Verbose для логирования и Write-Output возврата объектов.

Пример

Несоответствующий

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

Compliant

Используйте Write-Verbose для информационных сообщений. Пользователь может решить, следует ли видеть сообщение, указав параметр 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'
}