批处理:此时goto意外错误

时间:2014-04-08 18:35:42

标签: batch-file

所以我正在为学校制作一个项目,如果用户输入无效,我想转到菜单 我的代码是这样的:

:menu  
echo.  
echo.  
echo What would you like to know first?
echo.
echo.
echo 1) Salary
echo 2) What Do they do?
echo 3) Schools near me that offer game design programs
echo 4) Requirements
echo 5) Credits
echo.
echo.
set /p choice="Enter Number: "
if %choice% == 1 goto salary
if %choice% == 2 goto do
if %choice% == 3 goto schools
if %choice% == 4 goto req
if %choice% == 5 goto credits
goto menu

当我输入输入时,有一条闪烁的线 Goto此时出人意料,然后​​退出 我做错了什么?
我应该补充一点,我的输入不是一个有效的选项。 (1,2,3,4,5)

1 个答案:

答案 0 :(得分:4)

if %choice% == 1 goto salary

想象一下,当%choice%为空时,这会做什么。该行将被读作:

if  == 1 goto salary

显然是语法错误。 “goto出人意料”。

要避免这种情况,请使用

if "%choice%" == "1" goto salary

这将被理解为:

if "" == "1" goto salary

现在语法正常。