当我从命令提示符运行此批处理文件时,出现此错误:
The syntax of the command is incorrect.
这与我的 IF
语句有关,但据我所知,我的语法是正确的 - 包括确保括号周围有必要的空格:
SET foo=bar
:: test
IF "%foo%" EQU "bar" (
:: foo
ECHO "equal to"
) ELSE (
:: bar
ECHO "not equal to"
)
最佳答案
问题在于您使用了注释标签 (::)。
::只能安全地用于 block 之外的注释。在 block 内,它将尝试执行下一行,因为它假设标签后面跟着一个命令。
标签注释后的空行会导致错误。
您可以删除空行来消除错误。在这种情况下,解析器假定标签和 echo 命令是要执行的命令。
试试这个:
SET foo=bar
:: test
IF "%foo%" EQU "bar" (
:: foo
ECHO "equal to"
) ELSE (
:: bar
ECHO "not equal to"
)
更安全的选择是使用 real remark 命令:
SET foo=bar
rem test
IF "%foo%" EQU "bar" (
rem foo
ECHO "equal to"
) ELSE (
rem bar
ECHO "not equal to"
)
查看更多信息 http://ss64.com/nt/rem.html
关于batch-file - 批处理文件 - IF 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41778814/