2016. 1. 23. 18:54ㆍ프로그래밍/Windows
업무를 보다보면 단순하게 실행해야되는 것들이 있다.
뭐 예를 들어 git, svn 최신버전으로 바꾸는 거라던가..(아침에 항상 받는 최신버전)
클린업이라던가.. 빌드 자체도 MSBuild.exe를 통해 스크립트로 할 수 있다.
코드 짠 것을 테스트하기 위해 로컬 서버를 뛰운다던가.
worldServer.exe -config.cfg 이런 것들이 될 것이다.
하나하나 다 바로가기를 만들어 하나씩 켜도 되지만...
약간 옆으로 새는 거지만 일반적으로 두 종류의 개발자가 있다.
기존의 비효율적인 방법이 있지만 개선하지 않고 현 상태를 유지하는 개발자가 있다.
보통 사람들이라 할 수 있다. "왜 잘 돌아가는걸 바꾸려고 난리야?"
그리고 비효율적인 방법이 있다면 자동화와 개선방향을 찾아보는 것이다.
물론 개선(?)한다고 난리를 치다보면 해당 부분에 의존적인 부분들이 문제가 많이 생긴다.
가끔 엄청나게 심각한 사이드 이펙트가 생길때도(?)..
무엇이 옳다고는 할 수 없다. 일장일단이 있으므로! 일단 난 후자의 타입이다.
그러니 배치 파일로 다양한 작업을 자동화 할 수 있다.
얼마나 좋은가! 서론은 여기까지 하고..
choice와 goto를 이용하면 간단한 툴 형태의 배치파일을 만들 수 있다.
코드
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는 거의 공포지만 배치 파일에선 아주 귀여운 녀석인 것 같다.
'프로그래밍 > Windows' 카테고리의 다른 글
[windows] Hyper-V 관리자 설치 및 기능 켜기 (5) | 2016.02.22 |
---|---|
[CMD] robocopy로 특정 파일 하위 폴더 유지하고 복사하기(+ 특정 폴더 제외) (5) | 2016.02.18 |
[CMD, 바이러스?] USB 내용물이 갑자기 바로가기 파일로 바뀌었을 때 (4) | 2016.01.27 |
[CMD] CMD에서 드라이브 변경하는 명령어 (2) | 2015.12.10 |
[powershell] check_exit_code (0) | 2015.11.12 |
[powershell] policy execution (0) | 2015.11.10 |
[Windows] UAC (0) | 2015.11.03 |