mwultong Blog ... 프로그래밍 / 계산기

컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Friday, June 16, 2006

[배치파일 강좌] GOTO 명령 / 라벨(레이블; Label)에 대해서


GOTO 명령이란?


다른 언어에서도 마찬가지지만, 배치 파일에서의 goto 문도, 다른 곳으로 점프하라는 명령입니다.

GW-BASIC 의 GOTO 문에는 점프할 행번호를 지정해야 하지만

배치파일에서는 행번호를 붙이지 않기 때문에, 행번호 대신에 라벨을 지정합니다.



라벨(Label)이란?


GOTO 가 점프해 올 표지판을 세우는 것입니다.

어떤 문자열 앞에 콜론(:)을 하나 찍어 주면, GOTO 문의 행선지가 될 라벨을 만들 수 있습니다.

가령

:FOO

라고 하면 FOO 라는 이름의 라벨 즉 꼬리표가 생긴 것입니다. 대소문자는 구분하지 않습니다.


goto 소설
:소설

goto 똠방
:똠방


이렇게 한글도 되는 것 같은데, 되도록 영문자로 라벨을 지정하는 것이 안전합니다.



간단한 예제
파일명: example.bat
@echo off

goto QUIT

echo 이 문장은 결코 실행되지 않습니다.


:QUIT
echo 더 실행할 문장이 없기에, 여기서 종료됩니다.


배치파일은 위에서 아래로 실행됩니다. 그래서 "echo 이 문장은 결코 실행되지 않습니다." 라는 문장이 실행되어야 하지만, goto QUIT 이라는 것이 앞에 있기 때문에, 그냥 :QUIT 으로 점프해 버려서, "echo 더 실행할 문장이 없기에, 여기서 종료됩니다." 가 실행됩니다.

만약 위의 코드에서 :QUIT 을 지정해 주지 않았다면, "시스템이 지정된 일괄 레이블을 찾을 수 없습니다 - QUIT" 이런 에러가 납니다.





배치 파일로, 무한 루프 만들기


goto 문을 사용해, 위로 거슬러 올라가거나 할 수도 있습니다.

@echo off

:LOOP

echo 무한 루프! Ctrl+C를 누르면 강제로 종료됩니다...

goto LOOP


goto LOOP 가 실행되는 순간, 다시 :LOOP 라벨로 거슬러 올라가게 되고, 이것이 영원히 반복됩니다.



위의 예제를 foo.bat 등의 이름으로 하드에 저장하고, 명령 프롬프트(일명 도스창)에서 실행하면 다음의 결과가 나옵니다:

무한 루프! Ctrl+C를 누르면 강제로 종료됩니다...
무한 루프! Ctrl+C를 누르면 강제로 종료됩니다...
무한 루프! Ctrl+C를 누르면 강제로 종료됩니다...
무한 루프! Ctrl+C를 누르면 강제로 종료됩니다...
무한 루프! Ctrl+C를 누르면 강제로 종료됩니다...

... 중략 ...

무한 루프! Ctrl+C를 누르면 강제로 종료됩니다...
무한 루프! Ctrl+C를 누르면 강제로 종료됩니다...
무한 루프! Ctrl+C를 누르면 강제로 종료됩니다...
무한 루프! Ctrl+C를 누르면 강제로 종료됩니다...
무한 루프! Ctrl+C를 누르면 강제로 종료됩니다...
^C일괄 작업을 끝내시겠습니까 (Y/N)? y

D:\Z>


Ctrl+C 키, 즉 Ctrl 키를 누르면서 C 키를 눌러야 종료됩니다. 만약 Ctrl+C 키가 작동하지 않으면 Ctrl+Break 키를 눌러 봅니다.




tag: batch
배치파일 | DOS CMD BATCH .BAT | VBScript .VBS

2 Comments:
At June 16, 2006 at 2:12 PM, Blogger Unknown said...

Thanks for the help. I appreciate it!

 
At June 16, 2006 at 2:35 PM, Blogger mwultong said...

Thanks for visiting my blog..

(^_^)

 

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top