首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >批处理中的"if“语句:当输入应该是一个数字时,文件崩溃,但却有带有空格的单词

批处理中的"if“语句:当输入应该是一个数字时,文件崩溃,但却有带有空格的单词
EN

Stack Overflow用户
提问于 2015-11-23 16:26:12
回答 1查看 189关注 0票数 1

所以,我在批处理文件中有一个集合/p。用户要继续操作,必须键入"2“。我似乎在任何地方都找不到我的问题。

代码语言:javascript
复制
@echo off
echo "What is 1+1"

set /p oneplusone=Type Answer Here: 

if %oneplusone%==2 goto correct
if %oneplusone% neq 2 goto incorrect

:correct
cls
echo Correct!
pause
goto youranswer

:incorrect
cls
echo Wrong.
pause
goto youranswer

:youranswer
cls
echo You answered: %oneplusone%

现在,如果用户键入一个没有空格的数字/单词,那么一切都会正常进行,它会显示出您想要的答案。

但是,如果使用空格键入类似于"hi“的内容,批处理文件就会立即关闭。只有当答案需要是一个数字时,才会出现这种情况,而您需要键入涉及一个空格的内容。

有什么帮助吗?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-23 16:38:03

您可以使用以下方法检查您的答案是否是一个数字:

代码语言:javascript
复制
set /a test=%oneplusone%*1
if %test%==0 goto notValid

再加上另一个标签,让你的代码

代码语言:javascript
复制
@echo off
echo "What is 1+1"

set /p oneplusone=Type Answer Here: 
set /a test=%oneplusone%*1
if %test%==0 goto notValid
if %oneplusone%==2 goto correct
if %oneplusone% neq 2 goto incorrect

:correct
cls
echo Correct!
pause
goto youranswer

:incorrect
cls
echo Wrong.
pause
goto youranswer

:notValid
cls
echo Your input is not valid

pause
goto youranswer

:youranswer
cls
echo You answered: %oneplusone%
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33875828

复制
相关文章

相似问题

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