PowerShell에서 정보 메시지 출력하기
- PowerShell에서 출력 내보내기 소개
-
PowerShell에서
Write-Output
Cmdlet -
PowerShell에서
Write-Host
및Write-Information
Cmdlet -
PowerShell에서
Write-Warning
Cmdlet -
PowerShell에서
Write-Debug
Cmdlet -
PowerShell에서
Write-Error
Cmdlet -
PowerShell에서
Write-Verbose
Cmdlet

콘솔에 정보 메시지를 쓰는 것은 모든 언어에서 필수적인 과정으로, 사용자에게 정확한 피드백을 제공합니다. 그러나 Windows PowerShell에서 메시지를 인쇄하는 여러 방법이 있습니다.
이 문서에서는 정보, 경고 및 오류 메시지를 작성하는 여러 쓰기 명령을 구분하고 이를 사용할 수 있는 상황과 장소를 제공합니다.
PowerShell에서 출력 내보내기 소개
다양한 쓰기 명령에 대해 논의하기 전에, PowerShell은 한 줄을 단일(''
) 또는 이중 따옴표(""
)로 묶어 메시지를 출력할 수 있다는 점을 주목할 필요가 있습니다.
예제 코드:
"Hello World!"
'Hello World'
출력:
Hello World!
Hello World
이 구문은 문자열의 리터럴 표현과 숨겨진 문자열 파이프라인 덕분에 PowerShell에서 가능합니다. 위의 여러 코드 조각은 아래의 예제 코드와 동등합니다.
예제 코드:
"Hello World!" | Out-Host
Out-Host
명령은 콘솔에 표시하기 위해 출력된 객체를 보냅니다.
PowerShell에서 Write-Output
Cmdlet
첫 번째 인쇄 방법은 Write-Output
명령입니다. 이 cmdlet은 PowerShell 스크립팅 환경 내 모든 인쇄 방법 중 가장 기본적인 구문입니다.
이것은 print
및 stdout
와 같은 여러 다른 언어의 기본 인쇄 방법과 같습니다.
예제 코드:
Write-Output "Hello World!"
출력:
Hello World!
PowerShell에서 Write-Host
및 Write-Information
Cmdlet
Write-Host
명령은 이전 방법인 Write-Output
과 유사한 또 다른 인쇄 방법입니다.
이 명령이 PowerShell 5.0에서 업데이트되기 전의 유일한 차이점은 이 방법이 -BackgroundColor
및 -ForegroundColor
매개변수를 사용하여 색상을 다르게 한 메시지만 출력할 수 있다는 점입니다.
언급했듯이 Windows PowerShell 5.0부터 Write-Host
는 이제 Write-Information
의 래퍼입니다. 이를 통해 Write-Host
를 사용하여 정보 스트림에 출력을 내보낼 수 있습니다.
이 cmdlet은 Write-Host
명령을 사용하여 작성된 데이터의 억제 또는 캡처를 가능하게 하면서 이전 호환성을 유지합니다.
$InformationPreference
환경 변수와 -InformationAction
표준 매개변수는 Write-Host
메시지에 영향을 미치지 않습니다. 이 규칙의 예외는 -InformationAction Ignore
로, 이는 Write-Host
출력을 효과적으로 억제합니다.
Write-Host
또는 Write-information
를 사용하여 정보 스트림에 쓰는 것은 출력 문자열과 문제를 일으키지 않습니다.
주어진 매개변수 값이 함수의 Write-Host
문에 바인딩되는 경우 -InformationAction
매개변수를 사용하여 정보 스트림의 가시성을 조작할 수도 있습니다.
예를 들어, 아래 예제는 기본적으로 정보 스트림을 비활성화하게 되며, -InformationAction
매개변수를 통해 요청되지 않는 한 그렇습니다.
Write-Host 'This is a test message' -InformationAction $InformationPreference -ForegroundColor Green
PowerShell에서 Write-Warning
Cmdlet
Write-Warning
명령은 Windows PowerShell 호스트에 경고 메시지를 씁니다. 경고 이벤트에 대한 응답은 사용자의 $WarningPreference
변수와 -WarningAction
표준 매개변수의 값에 따라 다릅니다.
$WarningPreference
변수의 유효한 값은 다음과 같습니다.
Stop
- 경고 및 오류 메시지를 표시한 다음 실행을 중지합니다.Inquire
- 경고 메시지를 표시하고 사용자에게 확인 메시지 형식으로 계속 진행할 권한을 요청합니다.Continue
- 변수의 기본값입니다. 경고 메시지를 표시한 다음 실행합니다.SilentlyContinue
- 경고 메시지를 표시하지 않습니다. 계속 실행합니다.
예제 코드:
Write-Warning "This is only a test warning notification." -WarningAction Continue
PowerShell에서 Write-Debug
Cmdlet
Write-Debug
명령은 PowerShell에서 인쇄하는 또 다른 방법입니다. 그러나 이 방법은 일반적으로 스크립팅 환경에서 디버그 메시지를 인쇄하는 데 더 많이 사용됩니다.
디버그 메시지는 기본적으로 표시되지 않지만 $debugPreference
변수를 사용하여 변경할 수 있습니다.
예제 코드:
Write-Debug "Error on line 1. Please investigate."
$debugPreference = "Continue"
Write-Debug "Error on line 5. Please investigate."
출력:
DEBUG: Error on line 5. Please investigate.
PowerShell에서 Write-Error
Cmdlet
Write-Error
명령은 비종료 오류를 출력합니다. 기본적으로 오류는 출력과 함께 내보내기 위해 PowerShell 호스트 프로그램에 오류 스트림으로 전송됩니다.
비종료 오류를 출력하려면 오류 메시지 문자열, ErrorRecord
객체 또는 Exception
객체를 입력합니다. 그런 다음 내보낼 오류 레코드를 작성하기 위해 Write-Error
의 다양한 매개변수를 사용합니다.
비종료 오류는 오류 스트림에 오류를 작성하지만 명령 처리 중단은 발생하지 않습니다. 예를 들어, 입력 항목 집합의 한 항목에서 비종료 오류가 발생하면 cmdlet은 다른 항목 처리를 계속합니다.
예제 코드:
Write-Error "Invalid object" -ErrorId B1 -TargetObject $_
출력:
Write-Error "Invalid object" -ErrorId B1 -TargetObject $_ : Invalid object
+ CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException
+ FullyQualifiedErrorId : B1
PowerShell에서 Write-Verbose
Cmdlet
Write-Verbose
명령은 PowerShell의 자세한 메시지 스트림에 텍스트를 씁니다.
Write-Debug
명령과 마찬가지로 자세한 메시지는 기본적으로 표시되지 않지만 $VerbosePreference
변수를 사용하거나 -Verbose
스위치 매개변수를 추가하여 표시할 수 있습니다.
예제 코드:
Write-Verbose -Message "This will not be displayed."
Write-Verbose -Message "This will be displayed" -Verbose
출력:
VERBOSE: This will be displayed
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn