본문으로 바로가기

윈도우에서 일괄 작업을 위해 bat파일을 생성했을 경우 실행하는 프로그램이 종료되지 전까지 cmd창이 떠 있게 됩니다. 이번 글에서는 cmd창 없이 bat파일을 실행하는 방법을 설명합니다.

 

백그라운드로 실행하는 batch 만들기

START /b 로 실행하게 되면 백그라운드 실행이 가능합니다. 하지만, 잠깐 동안 cmd 창이 떴다가 사라집니다.
그리고, START /b cmd /c 로 실행하게 되면 백그라운드로 실행이 가능합니다. 하지만, cmd 창을 계속 떠 있게 됩니다.

아래는 백그라운드로 java 를 실행하기 위해 생성한 bat 파일입니다.

@echo off

SET CLAZZ=kr.ejsoft.tunnel.server.Application

SET BASEPATH=.........

SET CLASSPATH=kr.ejsoft.tunnel.server-0.0.1-SNAPSHOT.jar
SET CLASSPATH=%CLASSPATH%;log4j-api-2.10.0.jar
SET CLASSPATH=%CLASSPATH%;log4j-core-2.10.0.jar
SET CLASSPATH=%CLASSPATH%;log4j-slf4j-impl-2.10.0.jar
SET CLASSPATH=%CLASSPATH%;slf4j-api-1.8.0-alpha2.jar

SET OPTIONS=-Djavax.net.ssl.keyStore=client.keystore
SET OPTIONS=%OPTIONS% -Djavax.net.ssl.keyStorePassword=changeit
SET OPTIONS=%OPTIONS% -Djavax.net.ssl.trustStore=cacerts.keystore
SET OPTIONS=%OPTIONS% -Djavax.net.ssl.trustStorePassword=changeit

SET COMMAND=java -classpath %CLASSPATH% %OPTIONS% %CLAZZ% local tunnel-port host port

CD %BASEPATH%

ECHO %COMMAND%

REM @START /b cmd /c %COMMAND%
@START /b %COMMAND%

exit 0

 

창 없이 실행을 위한 VB스크립트 만들기

Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "........\tunnel.bat", "/c lodctr.exe /r" , "", "runas", 0

생성된 VB스크립트를 실행하면 cmd 창 없이 프로세스가 백그라운드로 시작됩니다.

 

참고자료

 

 

728x90