소프트웨어 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 | - | - |
1339 | 소프트웨어| 윈7 d3dwindower 프로그램 질문.. | 도랑스 | 2507 | 05-21 |
1338 | 소프트웨어| vmware이미지를 iso로 변환할 수 있나요?? [2] | 고감맨 | 2047 | 05-21 |
1337 | 소프트웨어| 라디오 청취 프로그램 추천 바랍니다. [5] | 늠름하게 | 1304 | 05-20 |
1336 | 소프트웨어| iframe이 뭐에요? 해킹과 관련된 건지 봐주세요. [2] | Bling | 1508 | 05-20 |
1335 | 소프트웨어| 문의)) "True Image"도 포터블 개조 가능한가요? | Chobits0914 | 1223 | 05-20 |
1334 | 소프트웨어| 스마트폰 질문드립니다. | 무장해제 | 958 | 05-20 |
1333 | 소프트웨어| 포터블 유틸? [2] | 오서방 | 1337 | 05-20 |
1332 | 소프트웨어| 다음팟 인코더 DTS 미지원? | 미키하트 | 5887 | 05-20 |
1331 | 소프트웨어| 아크로니스 트루이미지 2011의 컨테스트 메뉴 비활성화 방... | 새우맛꼽등이 | 1602 | 05-20 |
1330 | 소프트웨어| 인터넷 익스플로러9을 새로 설치했는데 팝업처럼 뜨는거요 ... | 새우맛꼽등이 | 2107 | 05-20 |
1329 | 소프트웨어| Server 2008 R2 요청 합니다. | 카롤로스 | 1025 | 05-20 |
1328 | 소프트웨어| 토렌트 파일이 다운로드가 안되요..ㅡㅜ | 최켠 | 2787 | 05-20 |
1327 | 소프트웨어| 한극2010 기본글꼴 변경할려면 어떻게? [6] | 눈비 | 1645 | 05-20 |
1326 | 소프트웨어| usb메모리 펌웨어를 복사할 수 있나요? [2] | 강현맘 | 1826 | 05-19 |
1325 | 소프트웨어| ultraiso에서 보이지 안는 파일은 무었인지요? [2] | 운상아짜 | 1840 | 05-19 |
1324 | 소프트웨어| Palemoon 포터블의 로더를 왜 쓰는지 알고 계신 분 계신가요? [15] | -수- | 1571 | 05-19 |
1323 | 소프트웨어| 비주얼 스튜디오 2008 포터블 버전이 있나요? [2] | nanari | 3158 | 05-19 |
1322 | 소프트웨어| 크롬OS 실행 오류입니다. [2] | 영달 | 2322 | 05-19 |
1321 | 소프트웨어| ie9 다운로드 매니저 오류 [1] | 루키하루 | 2973 | 05-18 |
1320 | 소프트웨어| [긴급] 고수님들 부탁!! 가능할까요? [2] | 젤리가 좋아 | 1411 | 05-18 |
원하는 기능을 그룹으로 만들면 됩니다.
:1
첫번째 내용
pause
두번재 내용
pause
goto end
:2
첫번째 내용
pause
두번째 내용
pause
세번째 내용
pause
goto end
:end
exit
하나씩 실행하려면 pause 를 사용하고 연속으로 실행하려면 pause 필요없습니다.