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

 
Previous Post [HTML-CSS] div 태그에 스크롤바(Scroll Bar) 붙이기윈도우 도스창에서의, 파일 비교 명령은? ; 텍스트 파일 / 이진 파일 비교[텍스트 에디터 기초] Replace / Replace All 이란? : 문자열 치환오디오나 윈앰프의 '이퀄라이저'란? : 그래픽 이퀄라이저(Graphic Equalizer)...[QnA] UTF-8 이란 어떤 인코딩입니까?[QnA] 구글에서, 사이트의 제목줄(title) 부분만 검색하기 / 본문만 검색하기[3ds Max 기초] 3DS 맥스로 곡선/직선 그리는 방법: Bezier Curve / ...[HTML-CSS] DIV 태그로 간단한 박스(Box) 그리기 예제일본어 키보드와 특수문자 / 한글 자판으로 일어 입력 / Japanese Keyboard[일본어 학습] 々 는 무슨 기호인가요? 한자인가요?

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

Friday, June 16, 2006

GOTO 명령이란?


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

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

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



라벨(Label)이란?


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

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

가령

:FOO

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


goto 소설
:소설

goto 똠방
:똠방


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



간단한 예제:
@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 키를 눌러 봅니다.



2 Comments:
At 2:12 PM, Blogger world champ stephen neal said...

Thanks for the help. I appreciate it!

 
At 2:35 PM, Blogger mwultong said...

Thanks for visiting my blog..

(^_^)

 

Post a Comment

<< Home RSS 2.0 feed

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