development

배치 파일 실행 후 콘솔의 자동 폐쇄를 방지하는 방법

big-blog 2020. 2. 14. 23:43
반응형

배치 파일 실행 후 콘솔의 자동 폐쇄를 방지하는 방법


파일 실행 후 콘솔이 자동으로 닫히지 않도록 배치 파일 끝에 어떤 명령을 넣을 수 있습니까?


Windows / DOS 배치 파일에서 :

pause

이것은 좋은 "Press any key to continue . . . "메시지를 인쇄 합니다

또는 "Press any key to continue . . ."메시지를 원하지 않으면 대신 다음을 수행하십시오.

pause >nul

정확한 질문에 달려 있습니다!

일반적으로 .bat 파일 pause내에서 작업을 수행 합니다.

당신이 원하는 경우 cmd.exe를이 입력, 사용 유지 할 수 닫습니다하지 cmd /k파일의 끝에 명령을 사용합니다.


cmd.exe를 닫지 않고 계속 입력 할 수있게하려면 cmd /k

/kWindows 웹 사이트에서 수행하는 작업 을 명확히해야 할 필요성을 느꼈습니다 .

/k : 문자열로 지정된 명령을 수행하고 계속합니다.

따라서 cmd /kbat 파일의 끝에 후속 명령이 없으면 cmd.exe나중에 사용할 수 있도록 창을 열어 둡니다.

반면에 pause배치 파일의 끝에서 프로세스를 일시 중지하고 cmd.exe첫 번째 버튼을 누르면 종료 됩니다


배치 파일에 명령을 사용하는 아래의 방법은 새 명령 프롬프트 창을 열고 새 창은 자동으로 종료되지 않습니다.

start "title" call abcd.exe param1 param2  
start "title" call xyz.exe param1 param2

Maven 을 사용 하고 있고 입력을 건너 뛰고 콘솔을 닫아서 결과를 확인하지 않으 CALL려면 'mvn clean install'외에도 스크립트 에서 명령 을 사용해야합니다 .

이렇게하면 콘솔이 닫힙니다.

ECHO This is the wrong exemple
mvn clean install
pause

이와 같이 콘솔 은 계속 열려 있습니다

ECHO This is the right exemple
CALL mvn clean install
pause

CALL명령을 사용하지 않으면 과거의 예제 중 어느 것도 작동하지 않습니다.


cmd.exe실행할 코드 아래에 새 줄을 추가하십시오 .

c:\Python27\python D:\code\simple_http_server.py

cmd.exe

내 방법은 실제 배치 ( "foo.bat")를 작성하여 작업을 완료하는 것입니다. 그런 다음 다른 "start.bat"를 작성하십시오.

@echo off
cmd /k foo.bat

일회성 환경 변수를 설정할 때 이것이 매우 유용하다는 것을 알았습니다.


cmd배치 파일 끝에서 호출 하십시오.


게다가 pause.

set /p=

사용할 수 있습니다. 사용자 입력을 예상하고 Enter 키를 누르면 플로우를 해제합니다.

또는

runas /user:# "" >nul 2>&1

사용자 입력에서 아무것도 표시되지 않거나 명령 기록에 남아있는 것을 제외하고는 동일하게 수행됩니다.


가능성 1 : 2 개의 .bat 파일을 만들어 첫 번째 파일에 쓰기 만하면됩니다.

start <filename> // name of 2nd batch file
exit

배치 파일 2는 결국 닫히지 않는 파일입니다. 이제 배치 nr.1을 열면 두 번째가 시작되고 자체 복제됩니다. 두 번째가 끝나면 완전히 닫히지 않습니다 (끝에 출구를 두지 않는 한)

가능성 2 : 배치 파일 1 :

call <filename>
cls
echo End of file
pause
<any code you want>

두 번째 파일이 끝나면 파일 1로 다시 진행하여 나머지 파일을 출력합니다. 이를 통해 오류 처리기를 만들 수도 있습니다. nr.1이 충돌하면 nr.2로 이동하여 표시합니다


이 작은 핵은 사용자에게 키를 입력하도록 요청하고 변수 % exitkey %에 저장합니다 (이 변수는 원하는대로 호출 할 수 있음).

set /p exitkey= "Press any key to continue..."

NB : '='뒤의 공간이 매우 중요합니다


pause

또는

echo text to display
pause>nul

늦었다는 것을 알고 있지만 선호하는 방법은 다음과 같습니다.

:programend
pause>nul
GOTO programend

이런 식으로 사용자는 enter를 사용하여 종료 할 수 없습니다.


여기에 답변에 문제가 있었 으므로이 문제를 해결했습니다.

cmd /c node_modules\.bin\tsc
cmd /c node rollup_build.js
pause

사용 사례에 따라 두 가지 방법이 있습니다.

1) 실행 결과를보고 나중에 닫을 수 있도록 Windows cmd 프롬프트를 열어 두려면 사용하다

pause

2) Windows cmd 프롬프트를 열어두고 명령 후 일부 명령을 실행할 수 있도록하려면; 사용하다

cmd

여기에 이미지 설명을 입력하십시오


마지막 박쥐 라인에 cmd를 추가하십시오. 시스템 경로를 재설정하거나 지우면 다음과 같이 전체 경로로 cmd를 시작해야합니다.

%windir%\system32\cmd.exe

예를 들어 jdk를 이전 버전으로 재설정하는 박쥐 파일이 있습니다.

PATH=C:\Program Files\Java\jdk1.6.0_45\bin;C:\apache-ant-1.7.1\bin
SET JAVA_HOME=C:\Program Files\Java\jdk1.6.0_45
%windir%\system32\cmd.exe

시스템 경로를 재설정 했으므로 전체 경로로 cmd를 실행해야하거나 시스템이 cmd.exe를 찾을 수 없습니다 .cmd를 실행하지 못하고 창을 닫으면 오류 메시지가 표시되지 않습니다. .

참고 URL : https://stackoverflow.com/questions/988403/how-to-prevent-auto-closing-of-console-after-the-execution-of-batch-file



반응형