프로그램 시작 후 콘솔을 열지 않고 배치 파일에서 프로그램을 실행하려면 어떻게 해야 합니까?
현재 배치 파일은 다음과 같습니다.
myprogram.exe param1
프로그램은 기동하지만, DOS 창은 열린 채로 있습니다.어떻게 닫지?
start 명령어를 사용하여 배치파일이 프로그램을 대기하지 않도록 합니다."시작" 뒤에 실행할 프로그램 앞에 빈 큰따옴표를 넣기만 하면 됩니다.예를 들어 배치 명령에서 Visual Studio 2012를 실행하려면 다음과 같이 하십시오.
Start "" "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe"
시작 후 큰따옴표를 확인합니다.
exit 키워드를 사용할 수 있습니다.다음은 배치 파일 중 하나의 예입니다.
start myProgram.exe param1
exit
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 Script Host Run() 메서드는 다음과 같습니다.
- 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)
이거 드셔보세요.윈도우 없이 프로그램이 시작됩니다.사실 순간적으로 반짝거리지만 꽤 빨리 사라집니다.
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
이 질문에 대한 답변은 이미 많지만, 중요한 점을 강조하기 위해 이 글을 올렸습니다.
Start "C:\Program Files\someprog.exe"
위의 경우 일부 윈도 버전에서는 다음과 같은 문제가 발생할 수 있습니다.Start님은 실제로 첫 번째 따옴표 세트가 윈도 타이틀이 될 것으로 예상하고 있습니다.따라서 먼저 코멘트 또는 빈 코멘트를 이중 따옴표로 묶는 것이 가장 좋습니다.
Start "" "C:\Program Files\someprog.exe"
또는
Start "Window Title" "C:\Program Files\someprog.exe"
GUI에서 이 작업을 수행하는 솔루션:
실행할 프로그램의 바로 가기를 만듭니다.
바로 가기 속성을 편집합니다.
를 변경하다
TARGET까지 수비하다.%COMSPEC% /C "START "" "PROGRAMNAME"";를 변경하다
RUN필드를 최소화합니다.
준비! 마음에 드는지 봐...
PS: 프로그램 파라미터는 두 개의 최종 따옴표 사이에 삽입할 수 있습니다.PROGRAMNAME문자열은 파일 이름, 상대 경로 또는 절대 경로 중 하나일 수 있습니다. 절대 경로에 드라이브 문자와 세미콜론을 지우고 나면 호스트 컴퓨터가 할당한 문자에 관계없이 썸 드라이브에서 작동합니다.(또한 숏컷을 같은 폴더에 배치하고 프로그램 파일 이름 앞에 있는 경우,PROGRAMNAME%CD%일치합니다.을 「동일」, 「동일」로 할 수 .같은 트릭을 사용할 수 있습니다.START IN필드)를 참조해 주세요.
이 배치 파일이 일정대로 또는 항상 실행되어야 하는 경우 Windows 스케줄 도구를 사용할 수 있으며 배치 파일을 시작할 때 창이 열리지 않습니다.
Task Scheduler:
- >> > > -> 검 / > ->
'cmd' - 「」라고 입력합니다.
taskschd.msc> 력 -
[ ]을 합니다.Create Basic Task메뉴를 따라갑니다.
이게 도움이 됐으면 좋겠다.
여기 제가 선호하는 솔루션이 있습니다.그것은 비슷한 질문에 대한 대답에서 따온 것이다.
VBS 스크립트를 사용하여 배치 파일을 호출합니다.
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\path\to\your\batchfile.bat" & Chr(34), 0
Set WshShell = Nothing
위의 행을 편집기에 복사하고 파일을 저장합니다.VBS 내선
언급URL : https://stackoverflow.com/questions/324539/how-can-i-run-a-program-from-a-batch-file-without-leaving-the-console-open-after
'programing' 카테고리의 다른 글
| 애플리케이션을 올바르게 기동할 수 없었습니다(0xc000007b). (0) | 2023.04.24 |
|---|---|
| VBA 날짜(정수) (0) | 2023.04.24 |
| WPF ListBox의 ItemTemplate와 ItemContainerStyle의 차이점은 무엇입니까? (0) | 2023.04.24 |
| PowerShell에서 각 명령이 종료될 때까지 기다렸다가 다음 명령을 시작하도록 지시하는 방법은 무엇입니까? (0) | 2023.04.24 |
| 문자열에서 임의의 네이티브명령어를 실행하려면 어떻게 해야 하나요? (0) | 2023.04.24 |