Поделиться через


AvoidUsingWriteHost

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

Описание

Основной целью командлета Write-Host является создание выходных данных только для отображения на узле. Например, печать цветного текста или запрос пользователя на ввод при сочетании с Read-Host. Write-Host использует метод ToString() для записи выходных данных. Конкретный результат зависит от программы, в которой размещена PowerShell. Выходные данные из Write-Host не отправляются в конвейер. Чтобы вывести данные в конвейер, используйте Write-Output или неявные выходные данные.

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

Как

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

Пример

Неправильный

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

Правильно

Используйте 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'
}

Дополнительные сведения

узла записи