배치파일로 장난치기 - choice 명령어로 폴더 접속기 만들기 > information

본문 바로가기
사이트 내 전체검색

information

배치파일로 장난치기 - choice 명령어로 폴더 접속기 만들기

페이지 정보

작성자 서방님 댓글 0건 조회 273회 작성일 13-03-29 09:23

본문

뭐, 별 건 아니고 그냥 예전에 가지고 놀던 배치파일이 생각나서 한 번 써 본다.


배치파일은 뭐, 쉽다고까지 할 수는 없지만 그래도 자신에게 필요한 명령어만 알아 두면 편리하다.


윈도우 자체의 명령 프롬프트(검은 창)에서도 쓸 수 있기 때문에 알아 둬서 손해 볼 것도 없고,


이를 통해 컴퓨터를 고친다거나 하는 정도만 해도 컴퓨터를 아예 모르는 사람은 '오~'라는 소리를 하기도 한다.


준비물은 메모장과 명령 프롬프트, 가능하다면 명령줄 참조 도움말.



오늘 만들게 될 배치파일은 일정한 폴더 주소와 키워드를 지정해놓으면, 배치 파일을 열고 시간 내에 키워드를 입력해야만 해당 폴더를 열 수 있는 기능을 가졌다. 난 이런 기능을 쓸 일이 없는데?라고 하셔도, 저도 쓸 일이 없습니다...아마도?

숨김 폴더나 복잡한 폴더 모두 위치만 알면 열 수 있다. 컴퓨터를 만질 줄 아는 사람이 없는 곳에서 여러 사람이 한 컴퓨터를 쓸 때 편리한 정도. 이거 자체가 뭐, 폴더 주소를 담고 있기 때문에 한번 열어보면 다 뽀록난다.


우선 여기서는 윈도우 7에 choice명령어가 있다는 가정 하에 시작한다. 난 분명 있고, xp의 경우에는 없기도 하는 걸로 기억한다. 윈서버 2000에는 있던 것 같은데, 비스타는 잘 모르겠지만 있는 것 같다.


xp이고 choice명령어가 없다면 여기저기서 찾아보면 나올지도 모른다. 아마 간혹 바이러스가 꿈틀댈지도 모르니 재미로 하는 입장이라면 굳이 받지 않을 것을 권한다. 내가 올려도 되긴 하지만, 나도 내 컴퓨터에 모르는 바이러스가 있을까봐서 전전긍긍하는 상황이라 패스.


우선 실행창(윈도우키+R)에서 cmd를 치고 choice /?를 쳐서 기능을 살펴본다.

저렇게 쳐 보면 반드시 나오므로 걱정하지 말자. 안 나오면 없는 것.


그리고 메모장을 열어 다음과 같이 입력한다.


 
@echo off

choice /c qaztgbwsxyhnedcujmrfvikpol /n /t 2 /d a

if %ERRORLEVEL% NEQ 25 goto fail

choice /c qaztgbwsxyhnedcujmrfvikpol /n /t 1 /d a

if %ERRORLEVEL% NEQ 24 goto fail

choice /c qaztgbwsxyhnedcujmrfvikpol /n /t 1 /d a

if %ERRORLEVEL% NEQ 13 goto fail

choice /c qaztgbwsxyhnedcujmrfvikpol /n /t 1 /d a

if %ERRORLEVEL% NEQ 12 goto fail

start explorer "c:\download\"

:fail

exit



choice에서 /c 다음에는 누를 수 있는 키의 목록을 붙여서 쓴다. 지금 써 놓은 건 알파벳 순서대로 적지 않으려고 일부러 섞은 것이다. 알파벳 순서대로 써도 좋고 역순도 좋고, 상관 없다. 숫자도 가능은 하지만 여기서는 쓰지 않는다.

/n은 선택 가능한 목록이 무엇인지 보이지 않도록 하는 것이다. 쓰지 않았다가는 /c 뒤의 알파벳 덩어리가 나올 테니 써서 지운다.

/t는 대기 시간을 지정하는데, 반드시 /d와 같이 쓰인다. /t 2라면 2초를 기다리고, /t 1이라면 1초를 기다린다.

0을 쓰면 버튼이 눌릴 때까지 대기한다. 9999초까지 가능하다.

/d는 제한시간이 다 됐을 경우 누르게 될 버튼을 /c의 목록 중에서 선택한다. a를 일단 적어두었다.


그리고 if문. 핵심이라면 핵심이다.

if not ERRORLEVEL로도 가능한 줄 알았는데 이상하게 신통지가 않아서, 그냥 %ERRORLEVEL%로 만들었더니 잘 움직인다.

대부분 if의 확장 명령어가 가능하기 때문에(안 되는 건 오히려 못 봤다) NEQ(같지 않음)을 써서 편하게 만들 수 있다.

NEQ 뒤의 숫자는 /c 다음의 알파벳 뭉치에 있는 알파벳의 순서 번호이다. 25, 24, 13, 12는 순서대로 o, p, e, n이고

/choice문은 기본적으로는 대소문자 구별을 하지 않는다. 구별하게 하고 싶다면 /n 뒤에 /cs를 붙이면 된다.

현재는 open이라는 글자를 입력하면 열리게 되며, 다른 글자를 입력하고 싶다면 숫자 부분을 바꾸고, choice~if 부분의 두 줄이 한 글자를 입력하는 데 관여하므로



@echo off

choice /c qaztgbwsxyhnedcujmrfvikpol /n /t 2 /d a

if %ERRORLEVEL% NEQ 25 goto fail

choice /c qaztgbwsxyhnedcujmrfvikpol /n /t 1 /d a

if %ERRORLEVEL% NEQ 24 goto fail

choice /c qaztgbwsxyhnedcujmrfvikpol /n /t 1 /d a

if %ERRORLEVEL% NEQ 13 goto fail

choice /c qaztgbwsxyhnedcujmrfvikpol /n /t 1 /d a

if %ERRORLEVEL% NEQ 12 goto fail

choice /c qaztgbwsxyhnedcujmrfvikpol /n /t 1 /d a

if %ERRORLEVEL% NEQ 13 goto fail

choice /c qaztgbwsxyhnedcujmrfvikpol /n /t 1 /d a

if %ERRORLEVEL% NEQ 19 goto fail

start explorer "c:\download\"

:fail

exit

 


처럼 입력하면 입력할 키워드는 opener가 된다.


파일의 흐름은 다음과 같다.


파일을 연다>2초 대기시간의 choice문>입력한 값이 맞으면 무시, 아니면 fail로 점프>1초 대기시간의 choice문> 입력한 값이 맞으면 무시, 아니면 fail로 점프>1초 대기시간의 choice문> 입력한 값이 맞으면 무시, 아니면 fail로 점프 >1초 대기시간의 choice문>맞는 값이면 지정 폴더를 열기, 틀리면 fail로 점프

fail에서는 자동으로 배치파일 종료


처음이 2초인 건 오픈되고 나서 타자를 칠 준비를 해야 하기 때문이다.

start explorer "c:\download\"에서 explorer는 인터넷이 아닌 탐색기이며, ""안의 경로는 열려는 폴더를 지정하면 된다.

폴더를 여는 데에는 숨김 폴더로 지정해도 여는 데에 아무런 지장이 없으니 누군가는 가지고 있을지도 모를 비밀의 폴더를

어디 깊숙히 집어넣고 경로만 입력해도 된다. 비밀이라면야 뭐, 사업상 비밀이라던가...뭐 그런 걸 말하는 거다, 나는.

생각해보면 사업상 비밀이 있는 폴더가 있으면, 나 같으면 차라리 폴더 감추는 프로그램을 쓰겠다.

아, 그리고, 굳이 이걸로 폴더만 열 필요는 없으며, 다른 프로그램을 실행시키는 데 쓰일 수도 있다.

start calc같은 걸 써 놓으면 계산기가 열리는 거다.


다 적고 나면, 다른 이름으로 저장을 선택하여, 확장자를 '모든 파일'로 변경하고 제목을 yell.bat(yell은 마음대로 바꿔도 된다)로 저장한다. 만든 파일을 실행해서 확인해보면 된다.



깜빡했는데, 명령어를 잘못 입력했든 올바르게 입력했든 이걸 따라해서 뭔가 이득을 봤든 손해를 봤든 이쪽 글에서는 전혀 관계가 없음을 알린다. 꼭 해보세요! 한 것도 아니고 혼자서 한 연구 비스무리한 것일 뿐.

댓글목록

등록된 댓글이 없습니다.

Total 1,196건 54 페이지
게시물 검색

회원로그인

접속자집계

오늘
78
어제
302
최대
1,347
전체
155,139
Latest Crypto Fear & Greed Index

그누보드5
Copyright © 서방님.kr All rights reserved.