소프트웨어 CMD 작성 때 goto 명령에 관한 질문입니다.
2011.05.13 16:47
보통 CMD 작성할 때 goto 명령을 이용하는데요, 아래와 같이 간단한 예를 보고 질문 드리겠습니다.
set menu=
:1
:2
:3
|
위와 같이 작성됐다면 메뉴에서 1번을 선택하면 ':1' 의 내용이 출력되고 2번을 선택하면 ':2' 의 내용이 출력되게 됩니다.
그런데 만약, 메뉴에서 1번을 선택하면 ':1' 의 내용과 ':2' 의 내용이 순서로 진행되고 2번을 선택하면 ':1' 의 내용과 ':2' 의 내용, 그리고 ':3' 의 내용이 순서대로 출력되는 이런 명령은 어떻게 구성할 수 있을까요?
즉, 진행해야 할 명령들을 그룹별로 나누고 메뉴를 선택할 때 나뉘어진 명령들의 그룹을 임의적으로 선택하여 순차적으로 실행되게 하는 명령이 궁금합니다.
적고 보니 제가 많이 혼란스러운데, 답변 주시는 분들께 제대로 설명이 됐는지 모르겠습니다.
goto 명령으로는 한계가 있는 작업이라 좀 더 편리한 명령을 이용하고픈 마음에 질문 올립니다.
댓글 [10]
-
카리스마조 2011.05.13 16:58 -
나끼 2011.05.13 17:04
카리스마조님// 답변 감사합니다.
그런데 한 가지 찜찜한 것이... :1 의 첫 번째, :2의 첫 번째... 이렇게 동일한 첫 번째 내용들이 각기 그룹에 중복으로 들어 가게 되는데... 중복 내용들로 인해 CMD 파일 자체가 너무 길어집니다. 원래 목표가 중복 내용 없이 작성하자! 이기 때문에 고민이 많이 됩니다.
좀 더 고민이 필요한 부분 같습니다.
-
minesoul 2011.05.13 17:17
음.. 제가 이해한게 맞는지 모르겠는데요...
call 명령어를 써보면 어떨까요?
@echo off
:main
set menu=
set /p menu=번호를 선택해주세요 :
if "%menu%" == "1" call :1 && call :2
if "%menu%" == "2" call :1 && call :2 && call :3
if "%menu%" == "3" call :3
if "%menu%" == "4" goto Exit
goto main:1
echo 1
goto :eof
:2
echo 2
goto :eof
:3
echo 3
goto :eof이거 실행 해보면 질문에 해당하는 내용은 적용되는듯 한데요...
call로 부른 후에는 goto :eof 로 닫아줘야 합니다. -
나끼 2011.05.13 17:26
minesoul님// 답변 감사합니다.
CALL 명령이 반드시 외부 CMD 파일만 호출해서 출력하고 다시 본 CMD 파일로 돌아 오는 게 아녔군요?
지금 작성 해보겠습니다.
그런데 마지막 goto :eof 는 어디로 향하는 것인가요? 기존 goto 명령만 사용할 때는 마지막 Exit 로 가게했는데 :eof 는 어딘지 모르겠습니다.
-
minesoul 2011.05.13 17:33
goto :eof 는 해당 레이블을 지정하지 않아도 해당 스크립트를 종료하는 명령어 입니다.
:exit
exit
로 해야 하는것을
goto :eof
만 입력하는 것과 똑같은 것입니다.
-
꿀꿀이 2011.05.13 17:39 -
카리스마조 2011.05.13 17:20 중복 내용 없이 하려면
:1
call A & call B
exit
:2
call A & call B & call C
exit
:A
첫번째 내용
exit /b
:B
두번째 내용
exit /b
:C
세번째 내용
exit /b
k.j의 소스보기에서 Scripts.cmd 열어보시면 원하는 기능 다 있습니다.
-
카리스마조 2011.05.13 17:21 minesoul 님이 올린것이 좀더 단순하군요
-
나끼 2011.05.13 17:28
카리스마조님// 답변 감사합니다.
제가 사용했던 goto 명령을 이용한 측면에서 확실히 이해가 되는 명령입니다. minesoul님// 명령은 가장 최적화 된 명령으로 보이고요.
-
카리스마조 2011.05.13 17:57 exit /b 와 goto :eof는 동일한 기능을 합니다.
번호 | 제목 | 글쓴이 | 조회 | 등록일 |
---|---|---|---|---|
[공지] | 질문과 답변 게시판 이용간 유의사항 | gooddew | - | - |
23111 | 소프트웨어| 한글2010 업데이트 오류... [1] | dktlqkfWkw | 3831 | 05-14 |
23110 | 소프트웨어| 랜케이블 성능테스트 방법 질문 입니다. [1] | 우주선 | 1664 | 05-14 |
23109 | 윈 도 우| 원포에 들어오면........... [4] | 유체이탈 | 1402 | 05-14 |
23108 | 하드웨어| 문의)) 외장하드 어느것을 선택해야 할까요? [3] | Chobits0914 | 1700 | 05-14 |
23107 | 소프트웨어| 제 EBoostr 속도는...루저입니다. [2] | 고진거진허 | 1822 | 05-14 |
23106 | 하드웨어| 인코딩 하는데... [2] | 고진거진허 | 1383 | 05-14 |
23105 | 윈 도 우| 장치 및 프린터에 목록이 보이지 않습니다. [2] | 프리네 | 2883 | 05-14 |
23104 | 소프트웨어| 크롬에서 이미지 클릭시 문제점 질문드립니다. [2] | 바람은찰나 | 1352 | 05-13 |
23103 | 소프트웨어| 블로그등에 올리는 플래쉬 파일..질문좀...^^ [2] | 비비안린 | 1184 | 05-13 |
23102 | 소프트웨어| 끄응 이거왜이래요 (글꼴크기문제인가요?) [3] | Orpheus | 1644 | 05-13 |
23101 | 소프트웨어| 다음 팟플레이어 재생시간... [4] | 미키하트 | 2786 | 05-13 |
23100 | 윈 도 우| 램디스크,,,어떤지요? [11] | 응가 | 1693 | 05-13 |
23099 | 하드웨어| 하드관련 질문입니다. [2] | 다라유타 | 1267 | 05-13 |
23098 | 윈 도 우| dvix 업데이트 문제 [2] | 테러리스트 | 1328 | 05-13 |
23097 | 소프트웨어| 포토샵 다운받았는데..어떤걸 깔아야 할지... [5] | 고진거진허 | 1472 | 05-13 |
23096 | 소프트웨어| 게임 부스터 크랙 문제... [1] | 고진거진허 | 1568 | 05-13 |
23095 | 윈 도 우| 윈도우 트윅버전 써보신분들께 질문.. [12] | 라크 | 2181 | 05-13 |
23094 | 하드웨어| 시게이트 2테라 그린 구매했는데;; 하드 상태가 이거 정상... [4] | 만쓰별 | 1816 | 05-13 |
» | 소프트웨어| CMD 작성 때 goto 명령에 관한 질문입니다. [10] | 나끼 | 2113 | 05-13 |
23092 | 윈 도 우| 윈7과 xp 멀티 설치할때 하드 드라이브 문자에 관한 질문 [2] | 강종상 | 1502 | 05-13 |
원하는 기능을 그룹으로 만들면 됩니다.
:1
첫번째 내용
pause
두번재 내용
pause
goto end
:2
첫번째 내용
pause
두번째 내용
pause
세번째 내용
pause
goto end
:end
exit
하나씩 실행하려면 pause 를 사용하고 연속으로 실행하려면 pause 필요없습니다.