블로그 이미지
Sergio Donati Julyus

카테고리

분류 전체보기 (886)
[Apple] (156)
[DESKTOP] (64)
[DEVELOP] (36)
[FINANCE] (4)
[EPINEPHRINE] (60)
[ILLUST] (52)
[MEDIA] (86)
[NETWORKS] (69)
[OFFICE] (145)
[OPERATING_SYS] (70)
[SECURITY] (16)
[SYSTEM] (108)
[Equipment] (16)
Total
Today
Yesterday







배치화일(bat) 실행시, 커맨드 창(cmd) 뜨지 않게 하기 Dos_Network_Security




배치화일(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

Posted by Julyus
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함