2016-08-15 52 views
-1

我已经写了一个批处理文件来帮助组织一些事情,并且我在第一页使用if/else语句遇到了多个语法错误。批量如果/否则语法错误

代码:

:Home 
cls 
title Home 
color 0a 



echo. 

echo -------------------- 
echo ^|     ^| 
echo ^| A) Mon, Wed, Fri ^| 
echo ^|     ^| 
echo ^|     ^| 
echo ^| B) Tue, Thur  ^| 
echo ^|     ^| 
echo ^|     ^| 
echo -------------------- 

set /p d = Please select a day set. 

IF %d%==A (
    goto Mon 
) 
IF %d%==a (
    goto Mon 
) 
IF %d% == B (
    goto Tue 
) 
IF %d% == b (
    goto Tue 
) ELSE (
    echo Invalid Input. Please try again 
    set /a sum = x+1 
    set x == sum 
    goto Home 
) 

:Mon 

,我碰到的问题是creatng变量 'd' 之后。我得到错误“(此时意外。”我试着移动圆括号来修复它,从大写到小写,将if语句的条件移动到语句的同一行,并删除括号。我假设这是一个简单的语法错误,但我的代码看起来像我自己试图解决这个问题的所有代码一样。谢谢。

回答

1

这是经典的“set-includes-spaces-变量名称“问题

由于您对代码进行了格式化,因此实际上已创建了一个名为%d %的变量,并且已将该变量的值设置为Please select a day set.(在此处有一个空格非常开始)

从等号两边去掉空格,你就可以走了。

set /p d=Please select a day set. 
+0

哦,上帝,那是如此简单。谢谢,它工作。这就是为什么我不使用批量。 – JimmyCode

+0

另外:'set x == sum'不正确,'set'没有'=='标志选项。你的意思是设置x = sum',将'x'设置为“sum”,将'x'设置为变量'sum':'set x =%sum%'。 –