[CMD] choice를 이용한 다중 실행 배치파일 만들기

2016. 1. 23. 18:54프로그래밍/Windows

728x90
728x90

업무를 보다보면 단순하게 실행해야되는 것들이 있다.

뭐 예를 들어 git, svn 최신버전으로 바꾸는 거라던가..(아침에 항상 받는 최신버전)

클린업이라던가.. 빌드 자체도 MSBuild.exe를 통해 스크립트로 할 수 있다.

코드 짠 것을 테스트하기 위해 로컬 서버를 뛰운다던가.

worldServer.exe -config.cfg 이런 것들이 될 것이다.

하나하나 다 바로가기를 만들어 하나씩 켜도 되지만...


약간 옆으로 새는 거지만 일반적으로 두 종류의 개발자가 있다.

기존의 비효율적인 방법이 있지만 개선하지 않고 현 상태를 유지하는 개발자가 있다.

보통 사람들이라 할 수 있다. "왜 잘 돌아가는걸 바꾸려고 난리야?"

그리고 비효율적인 방법이 있다면 자동화와 개선방향을 찾아보는 것이다.

물론 개선(?)한다고 난리를 치다보면 해당 부분에 의존적인 부분들이 문제가 많이 생긴다.

가끔 엄청나게 심각한 사이드 이펙트가 생길때도(?)..

무엇이 옳다고는 할 수 없다. 일장일단이 있으므로! 일단 난 후자의 타입이다.


그러니 배치 파일로 다양한 작업을 자동화 할 수 있다.

얼마나 좋은가! 서론은 여기까지 하고..


choice와 goto를 이용하면 간단한 툴 형태의 배치파일을 만들 수 있다.


코드

https://github.com/ElementalKiss/ETC/blob/master/Cmd/simpleSwitch.bat
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
@echo off
 
:_MENU
@echo 1 : Execution1
@echo 2 : Execution2
@echo 0 : END
 
choice /c:1234567890
 
IF %ERRORLEVEL% == 1 goto _EXECUTION1
IF %ERRORLEVEL% == 2 goto _EXECUTION2
IF %ERRORLEVEL% == 0 goto _END
exit
 
# message input
:_EXECUTION1
set /p INPUT=Input your message:
@echo youre message is %INPUT%.
 
goto _MENU
 
:_EXECUTION2
# execute another program(notepad.exe)
start notepad.exe newText.txt
 
goto _MENU
 
:END
exit
cs


:_MENU로 goto로 돌아올 곳을 만들고 choice를 하면 0~9까지 값을 선택한다.

그러면 리턴값을 저장하는 지원 변수인 errorlevel로 값이 들어가고 그것을 이용해 원하는 실행 스크립트로 갈 수 있다.

C++에서 goto는 거의 공포지만 배치 파일에선 아주 귀여운 녀석인 것 같다.

728x90
반응형