[windows] 프로그램이 시작된 후 콘솔을 열어 두지 않고 배치 파일에서 프로그램을 실행하려면 어떻게해야합니까?

현재 내 배치 파일은 다음과 같습니다.

myprogram.exe param1

프로그램이 시작되지만 DOS 창이 열려 있습니다. 닫을 수 있습니까?



답변

exit 키워드를 사용할 수 있습니다. 다음은 내 배치 파일 중 하나의 예입니다.

start myProgram.exe param1
exit


답변

배치 파일이 프로그램을 기다리지 않도록하려면 start 명령을 사용하십시오. “시작”후에 실행하려는 프로그램 앞에 빈 큰 따옴표를 넣어야합니다. 예를 들어 배치 명령에서 Visual Studio 2012를 실행하려는 경우 :

Start ""  "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe"

시작 후 큰 따옴표를 확인하십시오.


답변

START 명령을 보면 다음과 같이 할 수 있습니다.

START rest-of-your-program-name

예를 들어이 배치 파일은 메모장이 종료 될 때까지 기다립니다.

@echo off
notepad c:\test.txt

그러나 이것은 :

@echo off
start notepad c:\test.txt


답변

자신의 질문에서 :

start /b myProgram.exe params...

기존 DOS 세션에서 프로그램을 시작하면 작동합니다.

그렇지 않으면 VB 스크립트를 호출하십시오.

wscript.exe invis.vbs myProgram.exe %*

Windows 스크립트 호스트 실행 () 메소드를 취합니다

  • intWindowStyle : 0은 “보이지 않는 창”을 의미합니다
  • bWaitOnReturn : false는 첫 번째 스크립트가 두 번째 스크립트가 끝날 때까지 기다릴 필요가 없음을 의미합니다

다음은 invis.vbs입니다.

set args = WScript.Arguments
num = args.Count

if num = 0 then
    WScript.Echo "Usage: [CScript | WScript] invis.vbs aScript.bat <some script arguments>"
    WScript.Quit 1
end if

sargs = ""
if num > 1 then
    sargs = " "
    for k = 1 to num - 1
        anArg = args.Item(k)
        sargs = sargs & anArg & " "
    next
end if

Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run """" & WScript.Arguments(0) & """" & sargs, 0, False


답변

이것은 배치 파일에서 Java 클래스를 실행하려고 할 때 나를 위해 일한 유일한 것입니다.

start "cmdWindowTitle" /B "javaw" -cp . testprojectpak.MainForm

start적절한 구문에 따라 프로젝트에 원하는대로 명령을 사용자 정의 할 수 있습니다 .

Syntax
      START "title" [/Dpath] [options] "command" [parameters]

Key:
   title      : Text for the CMD window title bar (required)
   path       : Starting directory
   command    : The command, batch file or executable program to run
   parameters : The parameters passed to the command

Options:
   /MIN       : Minimized
   /MAX       : Maximized
   /WAIT      : Start application and wait for it to terminate
   /LOW       : Use IDLE priority class
   /NORMAL    : Use NORMAL priority class
   /HIGH      : Use HIGH priority class
   /REALTIME  : Use REALTIME priority class

   /B         : Start application without creating a new window. In this case
                ^C will be ignored - leaving ^Break as the only way to
                interrupt the application
   /I         : Ignore any changes to the current environment.

   Options for 16-bit WINDOWS programs only

   /SEPARATE   Start in separate memory space (more robust)
   /SHARED     Start in shared memory space (default)


답변

이것을 시도해야합니다. 창없이 프로그램을 시작합니다. 실제로 1 초 동안 깜박이지만 상당히 빨리 사라집니다.

start "name" /B myprogram.exe param1


답변

“공간 문제”및 로컬 종속성을 해결하는 방법 :

@echo off
cd "C:\Program Files\HeidiSQL"
start heidisql.exe

cd "C:\Program Files (x86)\Google\Chrome\Application"
start chrome.exe

exit