노무현 대통령 배너
BLOG main image
왕미친놈의 왕미친세상입니다. 미친 소리는 써도 되지만, 근거 없는 소리는 쓰면 안 됩니다.

들어가며

배치파일에서 프로그램을 실행할 때 경우에 따라서는 잠시 멈추거나, 때에 따라서 완전히 종료해야 할 수도 있다.

그러한 경우는 주로 배치파일의 일부에서 오동작이 생겨서 배치파일 전체에 영향을 주는 때나 진행 화면을 잠시 멈춘 뒤 보고 싶을 경우 등이 이에 해당한다.

잠시 멈추기

키를 눌러 잠시 멈추기

윈도 폴더를 보여주는 배치파일을 만들어 보자.

  1. @echo off
  2. rem 예제 5 : 윈도 폴더를 보여주는 배치파일
  3. rem 파일명 : exam05.bat
  4. rem 지은이 : koc2000/SALM
  5. rem 저작권 : GPL v3
  6.  
  7. echo 예제 5.
  8. echo 윈도 폴더를 보여준다.
  9. echo 보다가 잠시 멈추려면 Pause 키나 Ctrl+S를 누르시오.
  10. echo.
  11. dir C:\WINDOWS /s /a
  12. echo 끝.

배치파일을 만들 때에는 안내문을 보여줄 수 있게 하려고 했는데, 뭔가가 번개같이 지나가 버려 전혀 알아볼 수가 없었다. 본의 아니게 번갯불에 콩 볶는 모습을 보여준 격이 되었다.

 <예제5 결과 화면>

<예제5 결과 화면>

이번에는 명령 프롬프트에서 exam05 라고 명령을 내린 뒤에 얼른 <Pause> 키를 누르도록 하자. <Pause> 키는 키보드의 왼쪽 위, 숫자 패드의 왼쪽 위에 있다.

<예제5 잠시 멈춘 화면>

<예제5 잠시 멈춘 화면>

이때 <Pause> 키는 잠시 멈추라는 기능을 가지고 있다. 물론 윈도에서는 거의 동작하지 않지만, 이렇듯이 명령 프롬프트나 도스 상태에서 잘 작동한다. 도스 상태에서도 게임 등에서는 마찬가지로 거의 동작하지 않는다.

멈춤 명령

물론 도스에서도 명령행에서 멈추게 하는 명령어가 있다.

  1. @echo off
  2. rem 예제 5-1 : 윈도 폴더를 보여주는 배치파일
  3. rem 파일명 : exam05-1.bat
  4. rem 지은이 : koc2000/SALM
  5. rem 저작권 : GPL v3
  6.  
  7. echo 예제 5-1.
  8. echo 윈도 폴더를 보여준다.
  9. echo 보다가 잠시 멈추려면 Pause 키나 Ctrl+S를 누르시오.
  10. echo 다시 재개하려면 아무 키나 누르십시오.
  11. echo.
  12. echo 윈도 폴더를 보여줍니다.
  13. pause
  14. echo.
  15. dir C:\WINDOWS /s /a
  16. echo 끝.

위에 추가된 PAUSE 명령이 그것이다.

위의 명령을 실행시키면 아래처럼 일단 한 번 멈춘다.

<예제5-1 잠시 멈춘 화면>

<예제5-1 잠시 멈춘 화면>

강제 중단

방금 만든 exam06.cmd 파일을 다음과 입력하여 저장하자.

  1. @echo off
  2. rem 예제 6 : 시간과 날짜를 보여주는 도중에 잠시 멈추고
  3. rem          강제 종료에 대해 알려준다.
  4. rem 파일명 : exam06.cmd
  5. rem 지은이 : koc2000/SALM
  6. rem 저작권 : GPL v3
  7.  
  8. echo 예제 6.
  9. echo 날짜를 보여주고 멈춥니다.
  10. echo.
  11. echo 날짜를 바꾸려면 알맞은 날짜를 형식에 맞추어 넣으시오.
  12. echo 날짜를 바꾸지 않으려면 Enter를 누르시오.
  13. echo.
  14. date
  15. echo.
  16. echo 시간을 보여주고 멈춥니다.
  17. echo 종료하려면 Ctrl+C 또는 Ctrl+Break를 누르시오.
  18. pause
  19. echo.
  20. echo 시간을 바꾸려면 알맞은 시간을 형식에 맞추어 넣으시오.
  21. echo 시간을 바꾸지 않으려면 Enter를 누르시오.
  22. echo.
  23. time
  24. echo.
  25. echo 끝.

줄 수는 많지만, 실제 코드는 얼마 되지 않는다. 굳이 실행 화면은 보이지 않겠다. 실제로 실행해 보면 몇 가지 의문이 생길 터이다. 그때 질문을 올리기를 바란다. 위에서 보이고자 하는 바는 명령줄에서 <Ctrl+C> 또는 <Ctrl+Break>를 누르면 강제 중단하는 기능이 있다는 데 있다.

매개 변수

이번에는 지난 번에 예고했던 "파라미터"를 배치파일에 전달하는 방법에 대해서는 다루지 않겠다. 차례로 보면 그것을 알려줘야 하지만, 그것이 무엇인지만 설명하고 넘어가겠다.

파 라미터(parameter)는 도스와 윈도에서 매개 변수로 불린다. 이것은 명령줄에서 어떤 명령어와 관계를 맺고 어떤 작용을 지시하는 변수나 인자를 가리킨다. 자주 언급되었던 ECHO OFF 명령에서 실제 명령어는 ECHO뿐이고, OFF는 매개 변수이다.

  1. cls
  2. echo Hello World!
  3. pause

맨 처음 소개했던 clear.bat 파일의 내용이다.

위에서 CLS, ECHO, PAUSE는 명령어이고, ECHO 다음에 오는 Hello World! 부분은 매개 변수이다. 이때 명령어 자신도 매개 변수에 포함된다. 이것은 아주 특별한 경우이다.

  1. @echo Hello World!

위와 같이 입력하고 Hello.cmd 라고 저장하자. 단 한 줄이지만, 엄연히 배치파일이며, 프로그램이다. (색깔은 구분하기 위해 넣은 것이다. 내용만 제대로 입력하면 된다.)

실행시켜 보면 다음과 같이 나온다.

<Hello.cmd 실행 화면>

이대 내용을 약간 바꾸어 HelloMe.cmd 라고 저장하자. 끝에 %0 은 퍼센트 기호와 숫자 0 (영)이다.

  1. @echo Hello %0!

실행 결과는 직접 보고 느끼기 바란다. 그것까지 알려주면 식상할 듯 여겨져 올리지 않았다.

배치파일 이름을 바꾸어서 실행해 보기 바란다. 뒤에 확장자를 붙여 실행해 보고, 붙이지 않고 실행해 보기 바란다.

이때 명령어 자신도 매개 변수에 포함된다. 이것은 아주 특별한 경우이다.

저 말이 무슨 뜻인지 확실히 알게 되리라 생각한다.

아무튼 매개변수를 배치파일에 전달하라고 지정한 적은 없다. 그러나 명령어 해석기 안에는 이미 명령어 자신을 매개변수로 인식하도록 프로그램되어 있다는 점을 기억하자.

요약

  • 명령줄에서 잠시 멈출 때는 <Ctrl+S> 또는 <Break> 키를 누르면 된다.
  • 명령줄에서 강제 종료할 때는 <Ctrl+C> 또는 <Ctrl+Break> 키를 누르면 된다.
  • 파라미터(parameter)는 도스와 윈도에서 매개 변수로 불린다. 이것은 명령줄에서 어떤 명령어와 관계를 맺고 어떤 작용을 지시하는 변수나 인자를 가리킨다.

    • 명령어 자신도 매개변수이다.

지금까지 만들었던 배치파일을 압축하여 묶었다. 몇몇 파일은 강좌에서는 없었던 것도 있지만 시험 삼아 만든 파일이다.

  • 파일 : batch001.zip (3,877 바이트)
  • CRC32 값 : C1D834F1
  • MD5 값 : 7758c952ca718a16c65bb31793d10841

다음 예고

이번에는 지난 번에 예고했던 매개 변수를 배치파일에 전달하는 방법에 대해서는 좀 더 나중에 다루겠다.

일단 다음 강좌에서는 쉬어가는 시간을 마련했다. 기초가 끝났으므로 이것저것 잡다한 이야기를 하겠다.

이 글은 스프링노트에서 작성되었습니다.

글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

카테고리

분류 전체보기 (1005)
스크립트 (22)
벌레와 팁 (126)
소프트웨어 (240)
하드웨어 (6)
이야기 (24)
말의 나무 (506)
미쳐보자 (22)
일기 (48)
아이폰 (10)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

달력

«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

글 보관함