batch-file - 批处理文件 - IF 语法错误

标签 batch-file

当我从命令提示符运行此批处理文件时,出现此错误:

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/

相关文章:

c++ - 使用参数执行 .bat 文件并读取 C++ 中的控制台输出

php - 我如何返回和处理从 PHP 运行 .bat 文件的结果

batch-file - 如何在Windows中设置默认的Python版本?

mysql - 将 SQL 结果提取到 CSV 文件批处理作业

java - 关于 Hibernate Batchsize 排序

sql-server - 使用批处理文件执行一组 SQL 查询?

windows - 批量重新打开文件

java - 启动tomcat时如何传递-D附加参数?

java - 如何自动创建批处理/shell 脚本来运行 Java 控制台应用程序?

batch-file - 通过Plink打开SSH隧道,并通过命令行批处理文件运行R脚本