Возможно ли в командном файле MS-DOS приостановить выполнение сценария и подождать, пока пользователь нажмет клавишу ввода?
Я хочу сделать это внутри цикла. После каждой итерации я хочу, чтобы скрипт приостанавливал и ждал, пока пользователь нажмет «Enter».
batch-file
dos
dr_rk
источник
источник
set /p=Hit ENTER to continue...
или просто,set /p=
если вам не нужно приглашение.pause
Команда - это то, что вы ищете. Если вы ищете ТОЛЬКО случай, когда нажата клавиша enter, вы можете использоватьrunas
команду:экран будет заморожен до тех пор, пока не будет нажата кнопка ввода. Что мне нравится больше, чем
set/p=
то, что если вы нажмете другие кнопки, кроме ввода, они не будут отображатьсяисточник
Вы можете сделать это с помощью
pause
команды, например:источник
pause
действительно является единственным действительным ответомMS-DOS
(все остальные ответы работаютcmd
только в). Таким образом, ваш ответ на самом деле является единственным полностью правильным ответом на этот специальный вопрос (хотя он был предложен более 7 лет назад)В зависимости от того, какую операционную систему вы используете, если вы гибки, то
CHOICE
можно использовать для ожиданияEXCEPT
ввода практически любой клавишиЕсли вы на самом деле имеете в виду то, что Microsoft настаивает на том, чтобы называть «Командная строка», которая является просто эмулятором MS-DOS, то, возможно,
TIMEOUT
может подойти вашей цели (timeout /t -1
ожидание любой клавиши, а не толькоENTER
) и, конечно,CHOICE
снова доступно в последних выпусках WIN.И предупреждение о
SET /P
- тогда какset /p DUMMY=Hit ENTER to continue...
будет работать,определит, был ли введен просто ENTER или что-то еще, заканчивающееся на ENTER.
источник