수색…


콘솔 응용 프로그램

PS> console_app.exe
PS> & console_app.exe
PS> Start-Process console_app.exe

GUI 응용 프로그램

PS> gui_app.exe (1)
PS> & gui_app.exe (2)
PS> & gui_app.exe | Out-Null (3)
PS> Start-Process gui_app.exe (4)
PS> Start-Process gui_app.exe -Wait (5)

GUI 응용 프로그램은 다른 프로세스에서 실행되며 즉시 PowerShell 호스트로 제어권을 반환합니다. 때로는 다음 PowerShell 문을 실행해야하기 전에 응용 프로그램을 처리해야합니다. 이것은 애플리케이션 출력을 $ null (3)에 파이프하거나 -Wait 스위치 (5)와 함께 Start-Process를 사용하여 수행 할 수 있습니다.

콘솔 스트림

PS> $ErrorActionPreference = "Continue" (1)
PS> & console_app.exe *>&1 | % { $_ } (2)
PS> & console_app.exe *>&1 | ? { $_ -is [System.Management.Automation.ErrorRecord] } (3)
PS> & console_app.exe *>&1 | ? { $_ -is [System.Management.Automation.WarningRecord] } (4)
PS> & console_app.exe *>&1 | ? { $_ -is [System.Management.Automation.VerboseRecord] } (5)
PS> & console_app.exe *>&1 (6)
PS> & console_app.exe 2>&1 (7)

스트림 2에는 System.Management.Automation.ErrorRecord 개체가 포함되어 있습니다. git.exe와 같은 일부 응용 프로그램은 정보를 제공하기 위해 "오류 스트림"을 사용합니다. 오류는 아예 필요하지 않습니다. 이 경우 종료 코드를보고 오류 스트림을 오류로 해석해야하는지 확인하는 것이 가장 좋습니다.

PowerShell은 출력, 오류, 경고, 자세한 정보 표시, 디버그, 진행 등의 스트림을 인식합니다. 기본 응용 프로그램에서는 일반적으로 출력, 오류, 경고 등의 스트림 만 사용합니다.

PowerShell 5에서는 모든 스트림을 표준 출력 / 성공 스트림 (6)으로 리디렉션 할 수 있습니다.

이전 버전의 PowerShell에서는 특정 스트림 만 표준 출력 / 성공 스트림 (7)으로 리디렉션 될 수있었습니다. 이 예에서 "오류 스트림"은 출력 스트림으로 재 지정됩니다.

이탈 코드

PS> $LastExitCode
PS> $?
PS> $Error[0]

가장 최근 오류에 대한 추가 정보를 제공하는 기본 제공된 PowerShell 변수입니다. $LastExitCode 는 실행 된 마지막 네이티브 응용 프로그램의 최종 종료 코드입니다. $? $Error[0] 은 PowerShell에 의해 생성 된 마지막 오류 레코드입니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow