업무상 배치파일을 백그라운드로 실행시킬 방법을 찾아보다가, 배치파일 자체로는 불가능 하다는것을 알게됨.
따라서 vbs의 기능을 이용해서 배치파일을 실행시키는 방법을 이용해야 함.
텍스트파일을 하나 만들고
Set WshShell = CreateObject("WScript.Shell") WshShell.Run chr(34) & "배치파일 경로\배치파일.bat" & Chr(34), 0 Set WshShell = Nothing |
이라고 작성한뒤 파일 확장자를 vbs로 지정하여 저장 후 실행
하지만, 위 방법은 UAC를 낮추기 않으면 권한문제가 생김. 예를들어 배치파일 내에 레지스트리를 수정하는등 권한이 필요한 작업은 수행되지 않는다.
따라서 다음과 같은 방법으로 사용한다.
Set objShell = CreateObject("Shell.Application") objShell.ShellExecute "배치파일 경로\배치파일.bat", "/c lodctr.exe /r" , "", "runas", 0 |
이렇게 하면 레지 등록등 권한이 필요한 작업도 간으하다.
빨간색 부분 '0'이 백그라운드 옵션이다. '1'로 변경하면 cmd창이 보이게 된다.