PowerShell의 시작 프로세스에서 종료 코드 가져오기

John Wachira 2024년2월15일
PowerShell의 시작 프로세스에서 종료 코드 가져오기

이 기사는 PowerShell의 Start-Process 명령에서 종료 코드를 얻는 방법을 보여줍니다.

Start-Process cmdlet을 사용하면 PowerShell을 통해 시스템에서 하나 이상의 프로세스를 실행할 수 있습니다. cmdlet을 사용하여 컴퓨터에서 응용 프로그램을 시작할 수 있습니다.

PowerShell의 Start-Process에서 종료 코드 가져오기

PowerShell 스크립트를 실행할 때 콘솔은 항상 실행 상태를 반환합니다. PowerShell은 스크립트가 성공적으로 실행되면 0을 반환하고 실행에 실패하면 0이 아닌 값을 반환합니다.

실패한 스크립트 실행으로 인한 값을 오류 코드라고 합니다.

Start-Process에서 종료 코드를 어떻게 얻을 수 있습니까? 예를 들어 개념을 설명하겠습니다.

PowerShell에서 메모장을 열고 스크립트의 종료 코드를 가져오고 싶다고 가정해 보겠습니다. 어떻게 해야 할까요?

PowerShell에서 메모장을 여는 스크립트를 정의하는 것부터 시작하겠습니다. 아래 그림과 같이 Start-Process cmdlet을 사용합니다.

Start-Process -FilePath "notepad.exe" -PassThru -Wait

이 스크립트는 메모장을 열고 수동으로 종료할 때까지 기다립니다. 그러나 종료 코드를 얻으려면 명령을 변수에 저장해야 합니다.

이 경우 $run 변수에 저장합니다. 스크립트는 다음과 같습니다.

$run = (Start-Process -FilePath "notepad.exe" -PassThru -Wait)

메모장을 종료한 후 이제 아래 그림과 같이 종료 코드를 얻을 수 있습니다.

$run.ExitCode

스크립트가 성공적으로 실행되었으므로 0을 반환합니다.

종료 코드 1

메모장을 시작한 후 백그라운드에서 일부 처리를 실행하려면 어떻게 해야 합니까? 이러한 상황에서는 -wait를 생략하고 대신 아래 그림과 같이 $run.WaitExit()를 사용합니다.

$run = (Start-Process -FilePath "notepad.exe" -PassThru)
$run.WaitExit()

메모장을 종료한 후 아래와 같이 종료 코드를 얻을 수 있습니다.

$run.ExitCode

스크립트가 성공했으므로 여전히 0을 반환합니다.

결론적으로 명령을 변수에 저장하여 Start-Process cmdlet에서 종료 코드를 얻을 수 있습니다. 이렇게 하면 $.ExitCode 명령을 실행하여 종료 코드를 얻을 수 있습니다.

0이 아닌 값을 얻으면 스크립트가 성공적으로 실행되지 않았음을 나타냅니다.

작가: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn