与符号的批处理字符串比较

时间:2015-10-27 00:06:21

标签: batch-file string-comparison

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

例如:

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

我尝试了各种形式,我最近看起来像:

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

@echo off

cls
set /p var=

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

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

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