首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在批处理文件中检查空白用户输入(无输入)

在批处理文件中检查空白用户输入(无输入)
EN

Stack Overflow用户
提问于 2015-06-20 22:32:13
回答 2查看 2K关注 0票数 1

所以,我要求用户做一个选择。这个问题的重点是捕捉如果用户点击刚刚进入没有任何输入。我的计划是找出用户是否输入任何内容,只点击输入。如果是,则显示它不是有效的选项,然后返回到:START。下面的代码不起作用,特别是空输入和只有space字符的输入。如果用户做了这个无效的事情,那么我只想显示消息,说明它是空的。任何关于如何处理这一问题的建议都将不胜感激。

代码语言:javascript
复制
@echo off

:START
cls
echo  Choose your option & echo.
echo     [P] play
echo     [R] rules
echo     [M] main menu
echo     [E] exit
set /p "cho=->"
if %cho%==e (goto EXIT
) else if /I %cho%==m (goto MAINMENU
) else if /I %cho%==r (goto GAMERULES
) else if /I %cho%==p (goto GAMERULES
) else if %cho%=="" (goto EMPTYINPUT
) else if %cho%==" " (goto EMPTYINPUT
) else cls
echo That is not valid
pause

:EMPTYINPUT
echo  This is not a valid option.
pause
goto START
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-21 00:00:46

如果使用choice而不是set /P,则可以避免所有选项标识问题。set命令只对您定义的一组有限的键进行响应,因此它的答案总是正确的。

代码语言:javascript
复制
@echo off

:START
cls
echo  Choose your option & echo.
echo     [P] play
echo     [R] rules
echo     [M] main menu
echo     [E] exit
choice /C PRME /N /M "->"
goto option-%errorlevel%


:option-1  PLAY
echo In play
pause
goto start

:option-2  GAMERULES
echo In game rules
pause
goto start

:option-3  MAINMENU
echo In main menu
pause
goto start

:option-4  EXIT
echo Bye...
goto :EOF

有关详细信息,请键入:choice /?

票数 2
EN

Stack Overflow用户

发布于 2015-06-21 00:42:56

您也可以使用这样的动态菜单来尝试:

代码语言:javascript
复制
@echo off
Mode con cols=90 lines=15
:menuLOOP
Mode con cols=70 lines=15
Cls & color 0B
Title  Example of Dynamic Menu
echo(
echo(       ============================Menu===========================
echo(
for /f "tokens=2* delims=_ " %%A in ('"findstr /b /c:":menu_" "%~f0""') do echo(              %%A  %%B
echo(
echo(       ============================================================
set choice=
echo( & set /p choice=Make a choice or hit ENTER to quit: || GOTO :EOF
echo( & call :menu_[%choice%]
GOTO:menuLOOP

:menu_[P] PLAY
cls & Color 0A
echo.
echo In play
pause
GOTO:menuLOOP

:menu_[G] GAMERULES
cls & Color 0C
echo.
echo In game rules
pause
GOTO:menuLOOP

:menu_[M]  MAINMENU
cls & Color 0D
echo.
echo In main menu
pause
GOTO:menuLOOP

:menu_[E]  EXIT
echo Bye...
Exit
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30959498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档