为什么按"输入"仅在第一次按下时关闭批处理文件?

时间:2015-12-23 19:44:47

标签: batch-file crash enter

所以我注意到当我启动批处理文件并进入用户提示时,如果"输入"是第一个按下的键,文件将终止。如果"输入"在第二次或后续尝试时按下,文件正常运行(并再次按照goto返回菜单)。为什么会发生这种情况和/或如何防止它发生?我尝试使用暂停和超时,但垃圾邮件输入仍然会崩溃。

要使用下面的代码解释,如果按下A,我们转到:hello。另外我们回到:菜单。这适用于除enter之外的任何键。如果你点击进入你崩溃。但如果您点击其他内容,请重新加载菜单,然后输入重新加载。

以下示例代码:

@echo off

:menu
echo A: Hello
set /p _input=Choice? 
if %_input%==A goto hello
goto menu

:hello
echo Hello!
pause
exit

1 个答案:

答案 0 :(得分:-1)

@echo off
setlocal EnableDelayedExpansion

:menu
echo A: Hello
set /p _input=Choice? 
if /i "%_input%"=="" cls & goto :menu
if %_input%==A goto hello
goto menu

:hello
echo Hello!
pause
exit