繁体   English   中英

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

[英]How to escape commands when comparing strings in batch file?

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

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

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

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

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

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

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

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

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

问题代码, 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM