批处理 If/Else 语法错误

Batch If/Else 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 语句的条件移动到与语句相同的行,并删除括号。我假设这是一个简单的语法错误,但我的代码看起来与我试图自行解决此问题时查看的所有代码都一样。谢谢。

这是经典的 "set-includes-spaces-in-the-variable-name" 问题。

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

去掉等号两边的space就可以了。

set /p d=Please select a day set.