1

我目前正在使用批处理文件在 Windows 7 中制作游戏。所以我有一个序列,它会问你一个问题,然后你输入答案:

:MainMenu
set /p LMainMenu=
if %LMainMenu%==1 goto PlayMenu
if %LMainMenu%==2 goto ColourMenu
if %LMainMenu%==3 goto Reset1
if %LMainMenu%==4 goto AboutMenu
goto MainMenu

因此,如果有人没有输入任何内容并按“Enter”,CMD 窗口将关闭。我该如何防止这种情况发生?我添加了“goto MainMenu”,所以如果他们输入除 1、2、3、4 以外的任何内容,它们将被收回。将不胜感激。谢谢。

4

3 回答 3

2

尝试这个

:MainMenu
set /a LMainMenu=1
set /p "LMainMenu=enter a number: "

如需更多帮助,请参阅help set命令提示符。

于 2013-07-09T06:37:37.920 回答
1

如果您想要一个默认选择(当用户按下 时自动选择Enter),请使用Endoro建议的解决方案。如果要循环直到用户做出有效选择,请改用:

:MainMenu
set "LMainMenu="
set /p "LMainMenu=Enter a number [1-4]: "
if not defined LMainMenu goto MainMenu
if "%LMainMenu%"=="1" goto PlayMenu
...
于 2013-07-09T07:36:13.730 回答
0

添加这个应该可以。如果 "%LMainMenu%"=="" 转到 MainMenu

于 2013-07-09T06:44:57.183 回答