- by fendee
- 2011/06/10 05:14
- fendee.egloos.com/10724476
- 덧글수 : 1
배치화일(bat) 실행시, 커맨드 창(cmd) 뜨지 않게 하기 Dos_Network_Security
by fendee 2011/06/10 05:14 fendee.egloos.com/10724476 덧글수 : 1
배치화일(bat) 실행시, 커맨드 창(cmd) 뜨지 않게 하기.
본론부터 얘기하자면, 파일 확장자를 bat 로 만든 파일을 실행시킬때 커맨드 창이 뜨지 않게 하는 방법은 없는것 같다.
다만, 약간의 꼼수로 안보이게(혹은 못 느끼게) 하는 우회방법은 있다.
우선, 테스트를 위해 빈 텍스트 문서를 하나 생성한다.
그리고, 폴더를 여는 탐색기가 실행되도록 explorer 명령어를 넣는다.
그리고, 확장자를 배치화일(.bat) 로 바꿔준다.
예!
이렇게 만든 배치화일을 실행시키면, 위 화면과 같이 커다란 커맨드 창이 뜨면서 실행된다.
이 포스팅의 주제가, 바로 저 까만 창이 뜨지 않도록 하는 것이다.
이미 결론을 얘기 했듯이, 저 창이 뜨지 않게 하는 방법은 없다.
아니..다른 방법을 이용하면 되지만, 배치화일(bat) 을 클릭해서 실행하는 방법으로는 (아직까지 알기로는) 그 까만 창이 뜨지 않게 하는 방법은 없다.(다른 방법에 대해서는 하단에서 다시 정리함)
하지만, 약간의 꼼수를 이용할 수 있다.
만들어진 배치화일(bat) 의 바로가기 파일을 하나 만든다.
그런다음, '속성' 을 연다.
속성을 열어보면, 실행시에 창을 어떻게 할것인지 정할 수 있는 옵션이 있다.
이 값은 '기본 창' 이 기본 값으로 되어 있다.
그 때문에, 배치화일을 실행시킬때 까만 창이 뜨는 것이다.
이 값을 '최소화' 로 선택해두면, 실행시에 화면에 보이지 않게 된다.
(실제로는, 창이 최소화 되어서 실행되기 때문에, 사용자는 창이 실행된것을 눈치채지 못한다.)
이 방법은 파일이 bat 파일로 만들어진 경우 사용하는 어쩔수 없는 꼼수이다.
그러나, 만약, 명령을 실행하는 파일을 다른 파일로 한다면 정말 커맨드창이 뜨지 않게 할 수 있다.
비쥬얼베이직이나 델파이 같은 프로그램으로 애초에 exe 실행파일로 만들어서 명령을 실행하게 하거나,
혹은 .vbs 파일로 만들어서 실행하거나, 그 외에 다른 종류의 파일로 만들면 근본적으로 해결할 수 있는 문제다.
다만, 이 글의 취지는, 어쩔수 없이 bat 파일로 만들었는데, 까만 창이 뜨는것을 회피하고자 하는 경우에 사용할 최후의 선택이다.
참고글:
Silent .bat/.cmd file (no window)
http://www.pcreview.co.uk/forums/silent-bat-cmd-file-no-window-t364530.html
자료를 한참 찾다가 위의 링크의 글을 봤는데, 중간 부분에, 어떤 사람이 조언을 한 내용을 참조했다.
붙임.
만약, vbs 파일에 WScript 명령을 이용해서 한다면, 아래와 같은 방법으로 커맨드 창이 뜨지 않고 명령을 실행하도록 할 수 있다.
Set WshShell = WScript.CreateObject("WScript.Shell")
wshShell.run "explorer"
Set WshShell = nothing
위에서는, explorer 을 실행시키기 때문에, 별도로 옵션을 주지 않아도 커맨드 창이 뜨지는 않는다.
그러나, 만약, 이 파일에서 배치화일(bat)을 실행시킨다면 커맨드창이 뜨게 되는데, 이때는 뒤에 옵션을 붙여준다.
만약, 실행하려는 파일이 test.bat 라고 하자.
그러면, 아래와 같이 옵션을 주어서 명령을 실행시키면 커맨드 창이 뜨지 않는다.
wshShell.run "test.bat",0,True