批量If / Else语法错误

时间:2016-08-15 18:54:17

标签: batch-file if-statement syntax syntax-error

我已经编写了一个批处理文件来帮助组织一些事情,并且我在第一页上使用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

我遇到的问题就是在创建变量' d'之后。我得到错误"(此时出乎意料。"我已经尝试移动括号来修复它,从大写到小写,将我的if语句条件移到同一行作为声明,并删除括号。我假设它是一个简单的语法错误,但我的代码看起来与我试图自己解决这个问题所看到的所有代码相同。谢谢。

1 个答案:

答案 0 :(得分:1)

这是经典的“set-includes-spaces-in-the-name-name”问题。

由于您对代码进行了格式化,您实际上已经创建了一个名为%d %的变量。您还将该变量的值设置为Please select a day set.(一开始就有一个空格)。

从等号的两边删除空格,你就可以去了。

set /p d=Please select a day set.