批量字符串与符号比较

Batch String Comparison with Symbols

如何将字符串与包含符号的字符串进行比较? 在我的特殊情况下,我试图将字符串与“%1”(包括引号)进行比较。

例如:

if "%var%" neq '"%1"' ( echo %var% )

我试过各种形式,我最新的是这样的:

if "%var%" neq """%%1"""

比较时用其他内容替换变量中的引号。如果 var 在那些地方已经有那个符号,请与两个不同的字符进行比较以使这个技巧通用:

if "%var:"=*%%var:"=#%" neq "*%%1*#%%1#" echo Yay!

为了防止批处理认为您在谈论 %1 脚本参数,您需要将百分号加倍。在 == 运算符的两侧不使用引号也没有坏处,但您不必这样做。

@echo off

cls
set /p var=

if [%var%]==["%%1"] echo yes
pause

如果你想使用引号,你可以。

if "%var%"==""%%1"" echo yes