MS-DOSbatch file用input键暂停

是否有可能在MS-DOSbatch file中暂停脚本并等待用户input密钥?

我希望在for循环中做到这一点。 每次迭代后,我希望脚本暂停并等待用户点击“Enter”

有一个pause命令可以做到这一点,虽然它不是特定的input键。

如果您只想等待input键,则可以使用set命令来向用户input一个虚拟variables,如下所示:

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

pause命令是你在找什么。 如果您仅查看input时遇到的情况,则可以滥用runas命令:

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

屏幕将被冻结,直到input被击中。我喜欢超过set/p=是,如果你按其他button,而不是input他们将不会显示。

根据你使用的操作系统,如果你是灵活的,那么CHOICE可以用来等待几乎所有的密钥, EXCEPTinput

如果你真的指的是微软坚持要求的“命令提示符”,它只是一个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) 

将检测是否只是input或其他东西,结束在ENTER被键入。