PowerShell에서 정보 메시지 출력하기

  1. PowerShell에서 출력 내보내기 소개
  2. PowerShell에서 Write-Output Cmdlet
  3. PowerShell에서 Write-HostWrite-Information Cmdlet
  4. PowerShell에서 Write-Warning Cmdlet
  5. PowerShell에서 Write-Debug Cmdlet
  6. PowerShell에서 Write-Error Cmdlet
  7. PowerShell에서 Write-Verbose Cmdlet
PowerShell에서 정보 메시지 출력하기

콘솔에 정보 메시지를 쓰는 것은 모든 언어에서 필수적인 과정으로, 사용자에게 정확한 피드백을 제공합니다. 그러나 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 스크립팅 환경 내 모든 인쇄 방법 중 가장 기본적인 구문입니다.

이것은 printstdout와 같은 여러 다른 언어의 기본 인쇄 방법과 같습니다.

예제 코드:

Write-Output "Hello World!"

출력:

Hello World!

PowerShell에서 Write-HostWrite-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 변수의 유효한 값은 다음과 같습니다.

  1. Stop - 경고 및 오류 메시지를 표시한 다음 실행을 중지합니다.
  2. Inquire - 경고 메시지를 표시하고 사용자에게 확인 메시지 형식으로 계속 진행할 권한을 요청합니다.
  3. Continue - 변수의 기본값입니다. 경고 메시지를 표시한 다음 실행합니다.
  4. 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
튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn