Windows 배치 스크립트 시작 프로그램 및 종료 콘솔


90

같은 프로그램을 시작하는 데 사용하는 배치 스크립트가 있습니다 notepad.exe. 이 배치 파일을 두 번 클릭하면 메모장이 정상적으로 시작되지만 cmd시작된 사람 의 검은 색 창이 notepad.exe배경에 남아 있습니다. notepad.execmd 창 을 시작 하고 사라지게하려면 어떻게해야합니까?

편집 : 사용하는 것보다 더 복잡 \I합니다.

cmd통화 cygwincygwin시작 notepad. 나는 사용한다

start \I \path\cygwin\bin\bash.exe

첫 번째 창 (cmd)은 사라지지만 두 번째 창 (\ cygwin \ bin \ bash.exe)은 여전히 ​​배경에 있습니다. cygwin 스크립트에서 사용한 notepad.exe &다음 종료합니다.

답변:


204
start "" "%SystemRoot%\Notepad.exe"

""시작과 응용 프로그램 경로 사이에 유지하십시오 .


추가 된 설명 :

일반적으로 아래와 같은 배치 파일에서 프로그램을 시작하면 OP가 말한 것처럼 배경에 검은 색 창이 나타납니다.

%SystemRoot%\Notepad.exe

이는 동일한 명령 프롬프트 (프로세스)에서 실행되는 메모장 때문입니다. 메모장을 닫으면 명령 프롬프트가 닫힙니다. 이를 방지하기 위해 start명령을 사용하여 이와 같은 별도의 프로세스를 시작할 수 있습니다 .

start %SystemRoot%\Notepad.exe

이 명령은 경로에 공백이 없으면 괜찮습니다. 혹시라도 경로의 공간을 처리하기 위해 다음 "과 같이 따옴표를 추가 했습니다.

start "%SystemRoot%\Notepad.exe"

그러나이 명령을 실행하면 다른 빈 명령 프롬프트가 시작됩니다. 왜? 를 조회 start /?하면 start명령은 "시작할 새 명령 프롬프트의 제목으로 사이의 인수를 인식합니다 . 따라서이를 해결하기 위해 다음과 같은 명령이 있습니다.

start "" "%SystemRoot%\Notepad.exe"

의 첫 번째 인수는 ""제목 (공백으로 설정)을 설정하고 두 번째 인수는 "%SystemRoot%\Notepad.exe"실행할 대상 명령 (경로의 공백을 지원함)입니다.

명령에 매개 변수를 추가해야하는 경우 따옴표로 묶기 만하면됩니다.

start "" "%SystemRoot%\Notepad.exe" "<filename>" 

12
참고 :이 방법으로 Java jar 파일을 시작하려면 javaw실행 파일 을 사용해야합니다 (단지 java, java다른 배치 창을 시작 하기 때문에 ). 예 :start "" "javaw" -jar C:\JavaProject\myApp.jar
TmTron

@checksum 시작된 응용 프로그램의 표준 오류 및 표준 출력을 리디렉션하는 방법에 대한 예제를 확장 할 수 있습니까?
Starfish

@Starfish 메모장에는 stdout과 stderr가 없다고 생각합니다. 그러나 귀하의 질문에 대해서는 application.exe > stdout.txt 2>stderr.txt. 위의 답변에 질문을 추가하면 원래 포스터의 질문에서 벗어날 수 있습니다. 더 자세히 물어볼 새 질문을 시작할 수 있습니다.
체크섬

1
완전히 무의미한 해결책. Windows가 다시 승리합니다.
Ярослав Рахматуллин

9

사용 start notepad.exe.

더 많은 정보를 원하시면 start /?.


1
그리고 정확히 어떤 주장? /B? 읽었지만 start /B notepad.execmd 창을 사용 하면 사라지지 않습니다.
Possa

좋아, 사용하는 것보다 더 복잡 \I합니다. cmd는 cygwin을 호출하고 cygwin은 메모장을 시작합니다. 나는 사용 start \I cygwin하고 첫 번째 창이 사라지지만 두 번째 창이 여전히 배경에 있습니다. cygwin 스크립트에서 사용한 notepad.exe &다음exit
Possa

cygstart는 메모장을 시작하지만 콘솔은 백그라운드에 남아 있습니다.
Possa

5

가장 간단한 방법은 시작하는 것입니다. start

start notepad.exe

여기에서 다음 에 대한 자세한 정보를 찾을 수 있습니다.start


4

%ComSpec% /c %systemroot%\notepad.exe


cmd 창을 닫지 마십시오%ComSpec% /c emacs.exe "-rv" "--no-splash"
jcubic

0

흠 ... CALL 또는 START를 사용하지 않고 이와 같은 배치 파일 중 하나에서 수행합니다.

%SystemRoot%\notepad.exe ..\%URI%
GOTO ENDF

Cygwin이 설치되어 있지 않고 Windows XP를 사용하고 있습니다.


"The system cannot find the batch label specified - ENDF"Windows 10에서 오류 발생
jcubic

0
start "" ExeToExecute

아래 주석에서 @jeb가 지적한 것처럼 실제로는 박쥐 파일이기 때문에 Xilinx xsdk의 경우 메서드가 작동하지 않습니다.

그래서 사실상 작동하지 않는 것은

start "" BatToExecute

나는 그렇게 xsdk를 열려고하고 있으며 닫아야 할 별도의 cmd를 열고 xsdk는 자체적으로 실행할 수 있습니다.

xsdk를 시작하기 전에 Env / Paths ( settings64.bat 사용 )를 실행하여 xsdk.bat 명령이 인식되도록 (간단히 xsdk로, .bat없이 )

.bat 와 함께 작동하는 것

call BatToExecute

2
이것은 아마도 질문에 대한 대답이지만 이것은 아닙니다. 문제는 notepad.execmd.exe에서 분리 하여 .exe 파일 ( )을 시작하는 것입니다. 동일한 인스턴스에서 .bat 파일을 시작하는 방법에 대한 답변
jeb

-4

시작 해보세요 path\to\cygwin\bin\bash.exe


1
이것은 실제로 OP 질문에 대답하지 않습니다. 그는 시작하는 방법을 묻지 않았습니다 cygwin.
Jeremy J Starcher
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.