批处理程序实现无需回车的数字选择功能求助
批处理实现无回车数字选择解决方案
要实现无需回车、按对应数字直接完成选择的功能,批处理中可以使用choice命令替代set /p,该命令原生支持捕获单按键输入且无需回车确认。
修改后的代码如下:
echo (7) Main page echo (8) Go back choice /C 78 /M "Your Choice, %user% ? : " :: 根据choice返回的errorlevel判断选择(errorlevel从高到低判断) if errorlevel 2 goto BACK if errorlevel 1 goto MAIN :ONLY :: 这里可以保留原有的无效输入处理逻辑(不过choice默认只允许输入指定的7/8,所以此分支可能不会触发) echo Invalid choice! pause goto :EOF
代码说明
choice /C 78 /M "提示文本":/C参数指定允许输入的按键为7和8,/M参数设置提示信息if errorlevel N:choice命令会根据用户按下的按键返回对应的errorlevel值,按第一个指定按键(7)返回1,第二个(8)返回2,判断时需要从高到低写条件- 无需额外处理无效输入:
choice默认会拒绝指定范围外的按键,按下无效键时会响铃并等待有效输入,因此原代码中的If not %o% == 7 goto ONLY这类判断可以省略
内容的提问来源于stack exchange,提问作者Martin Z.I.T.A
相关产品推荐
相关产品推荐

