들어가며
배치파일에서 프로그램을 실행할 때 경우에 따라서는 잠시 멈추거나, 때에 따라서 완전히 종료해야 할 수도 있다.
그러한 경우는 주로 배치파일의 일부에서 오동작이 생겨서 배치파일 전체에 영향을 주는 때나 진행 화면을 잠시 멈춘 뒤 보고 싶을 경우 등이 이에 해당한다.
잠시 멈추기
키를 눌러 잠시 멈추기
윈도 폴더를 보여주는 배치파일을 만들어 보자.
- @echo off
- rem 예제 5 : 윈도 폴더를 보여주는 배치파일
- rem 파일명 : exam05.bat
- rem 지은이 : koc2000/SALM
- rem 저작권 : GPL v3
- echo 예제 5.
- echo 윈도 폴더를 보여준다.
- echo 보다가 잠시 멈추려면 Pause 키나 Ctrl+S를 누르시오.
- echo.
- dir C:\WINDOWS /s /a
- echo 끝.
배치파일을 만들 때에는 안내문을 보여줄 수 있게 하려고 했는데, 뭔가가 번개같이 지나가 버려 전혀 알아볼 수가 없었다. 본의 아니게 번갯불에 콩 볶는 모습을 보여준 격이 되었다.
<예제5 결과 화면>
이번에는 명령 프롬프트에서 exam05 라고 명령을 내린 뒤에 얼른 <Pause> 키를 누르도록 하자. <Pause> 키는 키보드의 왼쪽 위, 숫자 패드의 왼쪽 위에 있다.
<예제5 잠시 멈춘 화면>
이때 <Pause> 키는 잠시 멈추라는 기능을 가지고 있다. 물론 윈도에서는 거의 동작하지 않지만, 이렇듯이 명령 프롬프트나 도스 상태에서 잘 작동한다. 도스 상태에서도 게임 등에서는 마찬가지로 거의 동작하지 않는다.
멈춤 명령
물론 도스에서도 명령행에서 멈추게 하는 명령어가 있다.
- @echo off
- rem 예제 5-1 : 윈도 폴더를 보여주는 배치파일
- rem 파일명 : exam05-1.bat
- rem 지은이 : koc2000/SALM
- rem 저작권 : GPL v3
- echo 예제 5-1.
- echo 윈도 폴더를 보여준다.
- echo 보다가 잠시 멈추려면 Pause 키나 Ctrl+S를 누르시오.
- echo 다시 재개하려면 아무 키나 누르십시오.
- echo.
- echo 윈도 폴더를 보여줍니다.
- pause
- echo.
- dir C:\WINDOWS /s /a
- echo 끝.
위에 추가된 PAUSE 명령이 그것이다.
위의 명령을 실행시키면 아래처럼 일단 한 번 멈춘다.
<예제5-1 잠시 멈춘 화면>
강제 중단
방금 만든 exam06.cmd 파일을 다음과 입력하여 저장하자.
- @echo off
- rem 예제 6 : 시간과 날짜를 보여주는 도중에 잠시 멈추고
- rem 강제 종료에 대해 알려준다.
- rem 파일명 : exam06.cmd
- rem 지은이 : koc2000/SALM
- rem 저작권 : GPL v3
- echo 예제 6.
- echo 날짜를 보여주고 멈춥니다.
- echo.
- echo 날짜를 바꾸려면 알맞은 날짜를 형식에 맞추어 넣으시오.
- echo 날짜를 바꾸지 않으려면 Enter를 누르시오.
- echo.
- date
- echo.
- echo 시간을 보여주고 멈춥니다.
- echo 종료하려면 Ctrl+C 또는 Ctrl+Break를 누르시오.
- pause
- echo.
- echo 시간을 바꾸려면 알맞은 시간을 형식에 맞추어 넣으시오.
- echo 시간을 바꾸지 않으려면 Enter를 누르시오.
- echo.
- time
- echo.
- echo 끝.
줄 수는 많지만, 실제 코드는 얼마 되지 않는다. 굳이 실행 화면은 보이지 않겠다. 실제로 실행해 보면 몇 가지 의문이 생길 터이다. 그때 질문을 올리기를 바란다. 위에서 보이고자 하는 바는 명령줄에서 <Ctrl+C> 또는 <Ctrl+Break>를 누르면 강제 중단하는 기능이 있다는 데 있다.
매개 변수
이번에는 지난 번에 예고했던 "파라미터"를 배치파일에 전달하는 방법에 대해서는 다루지 않겠다. 차례로 보면 그것을 알려줘야 하지만, 그것이 무엇인지만 설명하고 넘어가겠다.
파 라미터(parameter)는 도스와 윈도에서 매개 변수로 불린다. 이것은 명령줄에서 어떤 명령어와 관계를 맺고 어떤 작용을 지시하는 변수나 인자를 가리킨다. 자주 언급되었던 ECHO OFF 명령에서 실제 명령어는 ECHO뿐이고, OFF는 매개 변수이다.
- cls
- echo Hello World!
- pause
맨 처음 소개했던 clear.bat 파일의 내용이다.
위에서 CLS, ECHO, PAUSE는 명령어이고, ECHO 다음에 오는 Hello World! 부분은 매개 변수이다. 이때 명령어 자신도 매개 변수에 포함된다. 이것은 아주 특별한 경우이다.
- @echo Hello World!
위와 같이 입력하고 Hello.cmd 라고 저장하자. 단 한 줄이지만, 엄연히 배치파일이며, 프로그램이다. (색깔은 구분하기 위해 넣은 것이다. 내용만 제대로 입력하면 된다.)
실행시켜 보면 다음과 같이 나온다.
이대 내용을 약간 바꾸어 HelloMe.cmd 라고 저장하자. 끝에 %0 은 퍼센트 기호와 숫자 0 (영)이다.
- @echo Hello %0!
실행 결과는 직접 보고 느끼기 바란다. 그것까지 알려주면 식상할 듯 여겨져 올리지 않았다.
배치파일 이름을 바꾸어서 실행해 보기 바란다. 뒤에 확장자를 붙여 실행해 보고, 붙이지 않고 실행해 보기 바란다.
이때 명령어 자신도 매개 변수에 포함된다. 이것은 아주 특별한 경우이다.
저 말이 무슨 뜻인지 확실히 알게 되리라 생각한다.
아무튼 매개변수를 배치파일에 전달하라고 지정한 적은 없다. 그러나 명령어 해석기 안에는 이미 명령어 자신을 매개변수로 인식하도록 프로그램되어 있다는 점을 기억하자.
요약
- 명령줄에서 잠시 멈출 때는 <Ctrl+S> 또는 <Break> 키를 누르면 된다.
- 명령줄에서 강제 종료할 때는 <Ctrl+C> 또는 <Ctrl+Break> 키를 누르면 된다.
-
파라미터(parameter)는 도스와 윈도에서 매개 변수로 불린다. 이것은 명령줄에서 어떤 명령어와 관계를 맺고 어떤 작용을 지시하는 변수나 인자를 가리킨다.
- 명령어 자신도 매개변수이다.
지금까지 만들었던 배치파일을 압축하여 묶었다. 몇몇 파일은 강좌에서는 없었던 것도 있지만 시험 삼아 만든 파일이다.
- 파일 : batch001.zip (3,877 바이트)
- CRC32 값 : C1D834F1
- MD5 값 : 7758c952ca718a16c65bb31793d10841
다음 예고
이번에는 지난 번에 예고했던 매개 변수를 배치파일에 전달하는 방법에 대해서는 좀 더 나중에 다루겠다.
일단 다음 강좌에서는 쉬어가는 시간을 마련했다. 기초가 끝났으므로 이것저것 잡다한 이야기를 하겠다.
이 글은 스프링노트에서 작성되었습니다.
'스크립트 > 배치파일' 카테고리의 다른 글
배치파일에 매개변수 전달하기 2 (5) | 2009.04.04 |
---|---|
배치파일에 매개변수 전달하기 (0) | 2009.04.01 |
그밖에 출력 (2) | 2009.03.26 |
주석 및 화면 출력 (3) | 2009.03.23 |
배치파일에서 이용할 수 있는 명령어 (2) | 2009.03.21 |