[windows] 배치 파일 : 콘솔 창을 열어 두는 방법

두 개의 배치 파일이 있는데 그중 하나는 다른 파일을 실행합니다.

  1. “내 배치 파일”> 2. “다른 배치 파일”

첫 번째 배치 파일의 바로 가기를 만들고 다음과 같은 방식으로 호출하도록 속성을 편집했습니다.

cmd.exe /k "<SomePath>\<My Batch File>.bat" & pause

원하는 작업
배치 파일 실행이 끝난 후 콘솔 창이 열리기를 원합니다. 이제는 닫히고 cmd 플래그 주위에서 재생하려고 시도했지만 결과가 없습니다.

플랫폼 : Windows7


업데이트 1

구조를 수정했습니다. 이와 같은 간단한 예제는 잘 작동하지 않습니다. 하나의 배치 파일 만 있습니다. 즉, 2 개의 배치 파일이 없습니다. “Some Other Batch File”유일한 배치 파일에는 이와 같은 smth가 포함되어 있습니다.

start /B /LOW /WAIT make package
cmd /K

업데이트 2

탐색기에서 호출되는 동일한 바로 가기는 콘솔 창을 닫지 않습니다.
그러나 작업 표시 줄의 고정 된 항목에서 바로 가기를 호출하면 콘솔 창이 닫힙니다.

콘솔 창을 열어 두는 방법에 대한 아이디어가 있습니까?



답변

그 정말 모든 배치 파일이하고있는 경우에는 제거 cmd /K및 추가 PAUSE.

start /B /LOW /WAIT make package
PAUSE

그런 다음 바로 가기를 "My Batch File.bat"…로 지정할 필요가 없습니다 CMD /K.

최신 정보

아, 새로운 정보가 있습니다. 작업 표시 줄에 고정 된 바로 가기에서 수행하려고합니다.

아래 관련 부분이 있는 Vista / XP Quick Launch와 같은 Windows 7 작업 표시 줄에 배치 파일 추가 라는 것을 발견했습니다 .

  1. 먼저 CMD.EXE시작 버튼을 눌러 작업 표시 줄에 대한 바로 가기를 고정한 다음 검색 상자에 “cmd”를 입력하고 결과를 마우스 오른쪽 단추로 클릭 한 다음 “작업 표시 줄에 고정”을 선택합니다.
  2. 작업 표시 줄의 바로 가기를 마우스 오른쪽 버튼으로 클릭합니다.
  3. “이 포함 된 목록이 표시됩니다. 명령 프롬프트 “및 ” 작업 표시 줄에서이 프로그램 고정 해제 이 표시 됩니다.
  4. 아이콘을 마우스 오른쪽 버튼으로 클릭 CMD.EXE 선택 Properties합니다.
  5. 대상에 대한 상자의 끝으로 이동 "%SystemRoot%\system32\cmd.exe"및 유형" /C " 하여 배치 파일의 경로와 이름을 합니다.

목적에 따라 다음 중 하나를 수행 할 수 있습니다.

  1. 사용하다 /CPAUSE배치 파일 끝에 a 를 하고 넣으 십시오.

    또는

  2. 사용할 명령 줄을 변경하고 배치 파일에서를 /K제거 PAUSE합니다.

답변

여기에:

cmd.exe /k "<SomePath>\<My Batch File>.bat" & pause

무엇을하고 있는지 살펴보십시오.

  1. (cmd / K) cmd 인스턴스를 시작 합니다.
  2. (& pause) CURRENT cmd 인스턴스를 일시 중지 합니다 .

어떻게 해결합니까? 올바른 구문을 사용하여 새 CMD 인스턴스에 대한 인수를 포함합니다.

cmd.exe /k ""<SomePath>\<My Batch File>.bat" & pause"


답변

마지막 줄을 다음과 같이 작성했습니다. Pause 했습니다. .bat 및 .cmd 모두에서 잘 작동했습니다. ‘계속하려면 아무 키나 누르십시오’라는 메시지도 표시됩니다.


답변

열어 놓으려는 배치 파일의 마지막 줄에

pause >nul


답변

콘솔 창을 열어 두려면 배치 파일의 마지막 명령 줄에만 추가하면됩니다.

' & pause'


답변

넌 그냥 넣을 수 있습니다 pause명령을 배치 파일의 마지막 줄에 :

@echo off
echo Hey, I'm just doing some work for you.
pause

출력으로 다음과 같은 것을 제공합니다.

이봐, 난 그냥 너를 위해 일하는거야.

계속하려면 아무 키나 누르십시오 …

참고 : @echo를 사용하면 출력이 인쇄되기 전에 명령이 출력되지 않습니다.


답변

rem Just use "pause" at the end of the batch file.
...
......
.......
pause