HOWTO · Batch

배치 스크립트의 PAUSE 키워드

이 자습서에서는 배치 스크립트에서 PAUSE 키워드의 사용을 보여줍니다.

이 페이지의 내용

Windows 배치 파일은 실행이 끝나자마자 명령 창이 닫힐 수 있어 결과를 읽을 시간이 부족할 수 있습니다. 스크립트의 특정 지점에서 키 입력을 기다리려면 PAUSE를 사용하고, 스크립트가 끝난 뒤에도 명령 창을 열어 두려면 CMD /K로 실행하세요. 두 방식은 동작이 다릅니다. 하나는 스크립트 내부의 실행을 일시 중지하고, 다른 하나는 명령 세션을 계속 사용할 수 있게 합니다.

PAUSE 명령 이해하기

Windows CMD에서 PAUSE를 실행하면 기본 안내 문구인 “Press any key to continue . . .”가 표시되고 키 입력을 기다립니다. 일반 키를 누르면 다음 배치 명령이 실행됩니다. Ctrl+C 또는 Ctrl+Break를 누르면 배치 파일의 실행이 중단되고, 단순히 다음 명령으로 넘어가는 대신 종료 처리가 시작될 수 있습니다. 예를 들어 스크립트에서 결과를 출력한 다음 사용자가 내용을 읽을 때까지 기다렸다가 마무리 문구를 출력할 수 있습니다. 이때 사용하는 명령은 @echo off, echo Report finished., pause, echo The script continues here.입니다.

명령줄에서 pause를 사용하면 사람이 확인해야 할 단계 뒤에서 실행을 멈출 수 있습니다. 그러나 사용자가 선택에 동의하는지는 확인하지 않습니다. 일반 키를 누르면 스크립트가 계속되고, Ctrl+C 또는 Ctrl+Break를 누르면 실행이 중단되어 종료 처리가 시작될 수 있습니다. 파일을 삭제하거나 시스템 설정을 바꾸기 전에 안전 확인을 받는 용도로 사용하지 마세요. 대화형 사용자가 없는 환경에서 실행하는 스크립트에도 PAUSE를 넣지 않는 편이 좋습니다. 키보드 입력이 들어올 때까지 계속 기다리기 때문입니다.

여기 있는 예제는 Windows CMD 문법을 보여 주며, 이 글을 작성하는 동안 실행하지 않았습니다. 배치 파일을 두 번 클릭해 실행하면 명령이 끝난 뒤 창이 닫힐 수 있습니다. 스크립트 안에 일시 중지 지점을 두면 키를 누를 때까지 창을 열어 둘 수 있습니다. 기본 안내 문구는 영어로 표시됩니다.

PAUSE 앞에 사용자 지정 메시지 표시하기

PAUSE의 안내 문구는 고정되어 있으며, 사용자 지정 문구를 직접 지정할 수 없습니다. 사용자에게 상황을 설명하려면 echo로 별도의 메시지를 출력한 뒤 pause >nul로 기본 안내 문구를 숨기세요. 예를 들어 echo Review the report above, then press a key to continue.를 실행하고 이어서 pause >nul을 실행할 수 있습니다. 이 예제의 메시지는 영어로 출력됩니다.

사용자 지정 문구는 echo 명령이 출력하고, >nul은 PAUSE의 출력을 리디렉션해 기본 안내 문구를 보이지 않게 합니다. 사용자가 무엇을 읽어야 하는지 또는 다음 스크립트 단계에서 어떤 일이 일어나는지를 설명할 때 유용합니다. 안내 문구는 정확하게 작성하세요. 키를 누르면 배치 파일이 다시 실행될 뿐, 사용자가 작업을 승인했다는 뜻은 아닙니다.

기본 안내 문구를 표시해도 괜찮다면 >nul을 생략하고 pause만 사용하세요. 어느 방식을 쓰든, 사용자가 확인해야 할 정보를 출력한 뒤이자 기다려야 하는 명령을 실행하기 전에 일시 중지 명령을 배치합니다.

CMD /K로 명령 창 열어 두기

배치 파일이 끝난 뒤에도 명령 창을 열어 두려면 CMD /K를 사용하세요. 예를 들어 실행 대화 상자나 다른 명령 실행 도구에서 cmd /k ""C:\Scripts\report.bat""를 입력합니다. 경로는 .bat 파일의 위치로 바꾸세요. CMD에서 /K에 명령 문자열을 전달할 때 바깥쪽 따옴표 한 쌍이 처리되고, 배치 파일 경로는 따옴표로 묶인 상태로 남습니다. 따라서 경로에 공백이 있어도 하나의 명령 이름으로 처리됩니다. CMD /K는 명령을 실행한 다음 명령 인터프리터를 열린 상태로 유지하므로, 출력을 확인하거나 다른 명령을 입력할 수 있습니다.

이 옵션은 배치 파일 내부에 일시 중지 지점을 추가하지 않습니다. 스크립트는 특정 줄에서 기다리지 않고 명령을 계속 실행하며, 명령이 완료된 뒤 명령 창을 계속 사용할 수 있습니다. 이 예제는 Windows CMD 문법이며, 이 글을 작성하는 동안 실행하지 않았습니다.

배치 스크립트에 적합한 방식 선택하기

다음 줄이 실행되기 전에 특정 시점에서 사람이 메시지나 결과를 읽어야 한다면 PAUSE를 선택하세요. 기다리는 이유가 분명하도록 일시 중지 전에 짧은 설명을 출력하세요. 직접 작성한 echo 문구만으로 충분하다면 pause >nul을 사용하고, 기본 안내 문구가 유용하다면 pause만 사용하면 됩니다. 키를 누를 사람이 없을 수도 있는 무인 정기 작업에는 불필요한 일시 중지를 넣지 마세요.

배치 파일이 끝난 뒤에도 명령 창을 열어 두는 것이 주된 목적이라면 CMD /K를 선택하세요. 명령 실행 도구에서 스크립트를 시작한 뒤 최종 출력을 확인할 때 편리합니다. 이 방법은 사용자의 응답을 기다리며 실행을 멈추지 않고, 키 입력을 승인으로 바꾸지도 않습니다.

두 방식 모두 CMD에서 실행하는 Windows 배치 파일에 적용됩니다. 어느 쪽도 앞선 작업의 성공 여부를 알려 주지는 않습니다. 성공 또는 실패에 따라 스크립트가 결정을 내려야 한다면 해당 명령의 결과를 별도로 확인하세요. 사람이 읽어야 할 단계에는 의도적인 스크립트 내부 일시 중지를 사용하고, 명령 세션을 계속 열어 두어 결과를 살펴보거나 다른 명령을 입력하려면 CMD /K를 사용하세요.