AvoidUsingWriteHost

심각도 수준: 경고

묘사

이 규칙은 동사를 사용하지 Show 않는 함수에서 사용 Write-Host 된 것을 감지합니다. Write-Host 호스트에서 표시 전용 출력을 생성하도록 설계되었으며, 예를 들어 색깔 텍스트를 출력하거나 사용자에게 입력을 요청하는 등의 역할을 합니다 Read-Host. 이 메서드를 사용 ToString() 해 출력을 작성하며, 결과는 PowerShell 호스트 프로그램에 따라 달라집니다.

파이프라인에 출력을 보내지 않으므로 Write-Host , 파이프라인을 통해 데이터를 전달하려면 암묵적인 출력이 필요합니다 Write-Output .

in 함수 사용 Write-Host 은 동사를 Show 사용하지 않는 한, 즉 사용자에게 정보를 표시하는 명확한 의미가 있는 경우를 피하세요. 이 규칙은 Show 동사를 사용하는 함수에는 적용되지 않습니다.

의도에 따라 Write-HostWrite-Output 또는 Write-Verbose 로 대체하세요. 기록과 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
}

Compliant

정보 메시지에 Write-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'
}