2016-03-27 56 views
1

我现在正在编写一个游戏批处理,当我遇到这个问题时我并没有走得太远。我试图为用户答案设置一个变量,然后将这个答案用于IF语句,但由于某种原因,它总是进入:Quit块。有想法该怎么解决这个吗?如果批量声明不起作用?

Echo . Are you ready? 
Echo Your options are: 
call :colorEcho C "=================" 
Echo. 
Echo 1. Yes 
Echo 2. No 
call :colorEcho C "=================" 
Echo. 
Echo Please enter the number corresponding to your answer. 
set /p Answer1 = "Enter your choice: " 
if "%Answer1%" == "1" goto Game 
if "%Answer1%" == "2" goto Quit 

:Quit 
Echo You have chosen to quit. 
pause 
exit 

:Game 
::Game goes here. 
Echo Test 
pause 

pause 
exit 

:colorEcho 
echo off 
<nul set /p ".=%DEL%" > "%~2" 
findstr /v /a:%1 /R "^$" "%~2" nul 
del "%~2" > nul 2>&1i 

colorEcho只是为一串文本设置了不同的颜色。

这是当我运行游戏会发生什么:

选项1选择:

Option 1 chosen

选项2选择:

Option 2 chosen

提前感谢!

黑桃

+2

我建议看看[选择](http://ss64.com/nt/choice.html),因为它是专门为这些东西制作的 –

回答

3

这是因为%Answer1%没有定义。

set /p Answer1 = "Enter your choice: " 

设置了一个名为%Answer1 %变量(注意空格!)

取出=周围的空间。

+0

哦,我的上帝啊,非常感谢你!我之前应该考虑过这个问题,但它总能帮助我看一眼我的代码,对吧?来自我的+1! –