比较批处理文件中的字符串时如何转义命令?

时间:2019-01-03 08:39:05

标签: windows batch-file string-comparison

我注意到,如果与“ IF”和“ DO”之类的词进行比较,则批处理文件中的字符串比较将无法正常进行。

IF "DO" == "DO" (
    ECHO YES
)

上面的方法工作正常,但没有用。

SET stringDO=DO
IF %stringDO% == "DO" (
    ECHO YES
) ELSE ( 
    ECHO NO
)

当我们使用变量时,以上示例的结果为“否”

奇怪的是,比较两个变量可以正常工作。

SET stringDO=DO
SET compare=DO
IF %stringDO% == %compare% (
    ECHO YES
)

所以我的问题是,我做错了什么吗?或者这是预期的行为?

在字符串比较中还有另一种转义命令字的方法吗?

1 个答案:

答案 0 :(得分:2)

问题代码if比较按顺序评估:

  1. IF "DO" == "DO"
  2. IF DO == "DO"
  3. IF DO == DO

比较中包括双引号。 DO不等于"DO"

SET stringDO=DO
IF "%stringDO%" == "DO" (
    ECHO YES
) ELSE ( 
    ECHO NO
)

得出YES