Пауза пакетного файла MS-DOS с ключом enter


возможно ли в пакетном файле MS-DOS приостановить скрипт и дождаться, пока пользователь нажмет клавишу ввода?

Я хочу сделать это внутри цикла for. После каждой итерации я хочу, чтобы скрипт приостанавливался и ждал, пока пользователь нажмет "Enter"

3 109

3 ответа:

здесь pause команда, которая делает именно это, хотя это не специально ключ enter.

Если вы действительно хотите ждать только клавишу enter, вы можете использовать set команда для запроса пользовательского ввода с фиктивной переменной, что-то вроде:

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

это то, что вы искали. Если вы ищете только тот случай, когда ввод ударил вы можете злоупотреблять :

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

экран будет заморожен до тех пор, пока не будет нажата enter.Что мне нравится больше, чем set/p= это если вы нажмете другие кнопки, чем enter они не будут отображаться.

в зависимости от того, какую ОС вы используете, если вы гибки, то 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)

определит, был ли просто введен или что-то еще, заканчивая вводом.