批量字符串与符号比较
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
如何将字符串与包含符号的字符串进行比较? 在我的特殊情况下,我试图将字符串与“%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