为什么这个简单的 Windows bat 文件会报错 "Syntax incorrect"?

Why does this simple Windows bat file give error "Syntax incorrect"?

这是在Windows 7.这是我用来测试参数是否存在的简单bat文件:

if [%1] EQU [] (
    echo No parameter given; usage: testparam <something>
    exit
) ELSE (
    echo You gave parameter: %1
)

当我 运行 这个(没有参数)时,我收到这个错误消息:

The syntax of the command is incorrect.

谁能告诉我哪里出了问题?许多其他示例都有此结构...

此问题是由于缺少参数的 echo 语句中缺少引号引起的

因为您没有在参数两边加上引号,cmd 会将 < 视为 "read input from file something>" 因为 "something>" 不是 windows 中的有效文件名,它会说您使用了无效语法

如何解决问题:

echo "No parameter given; usage: testparam <something>"