Enter 키를 사용하여 MS-DOS 배치 파일 일시 중지


146

MS-DOS 배치 파일에서 스크립트를 일시 중지하고 사용자가 Enter 키를 누를 때까지 기다릴 수 있습니까?

for 루프 내 에서이 작업을 수행하고 싶습니다. 각 반복 후에 스크립트가 일시 중지되고 사용자가 'Enter'를 누르기를 기다립니다.

답변:


247

거기에 pause특별히 enter 키는 아니지만 그렇게 명령이 있습니다.

enter 키만 기다리려면 set명령을 사용하여 다음과 같은 더미 변수로 사용자 입력을 요청할 수 있습니다 .

set /p DUMMY=Hit ENTER to continue...


17
변수 이름을 지정할 필요가 없습니다 : set /p=Hit ENTER to continue...또는 set /p=프롬프트가 필요하지 않은 경우.
dbenham

2
어떤 이유로 든 내 앱이 일시 중지 로직을 지나쳐 폭발하고 있습니다. 아주 이상한.
ouflak

11
이 문맥에서 "앱"이라는 단어가 사용되는 것을 보는 것은 조금 이상합니다 (배치 파일)
Adrian Grigore

그것은 나를 위해 작동하지 않습니다. 'set'이 작동 / 환경에 저장되었을 때 두 번째 실행에서만 작동합니다.
ses

13

pause명령은 당신이 찾고있는 것입니다. Enter 키를 누르는 경우에만 사건을 보면 runas명령을 남용 할 수 있습니다 .

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

Enter 키를 누를 때까지 화면이 정지 set/p=됩니다.


4

다음 pause명령을 사용하여 수행 할 수 있습니다 .

dir
pause
echo Now about to end...
pause

1
pause실제로 유일하게 유효한 답변입니다 MS-DOS(다른 모든 답변은 작동하고 cmd있습니다). 따라서 귀하의 답변은 실제로이 특별한 질문에 대한 유일무이 한 정답입니다 (이미 7 년 전에 이미 제안되었지만)
Stephan

3

사용중인 OS에 따라 유연하다면 CHOICE거의 모든 키를 기다리는 데 사용할 수 있습니다EXCEPT 입력

Microsoft가 MS-DOS 에뮬레이터 인 "명령 프롬프트"를 호출한다고 주장하는 것을 실제로 언급하고 있다면 아마도 TIMEOUT 목적에 적합 할 있습니다 ( timeout /t -1단지뿐만 아니라 모든 키 대기 ENTER).CHOICE 최신 WIN 버전에서도 다시 사용할 수 있습니다.

그리고 경고 SET /P - set /p DUMMY=Hit ENTER to continue...작동하지만

set "dummy="
set /p DUMMY=Hit ENTER to continue...
if defined dummy (echo not just ENTER was pressed) else (echo just ENTER was pressed)

ENTER로 끝나는 ENTER 또는 다른 것을 감지합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.