我有一个文本文件,我想检查一个字符串不包含“=”符号。我发现很难弄清楚如何在BATCH脚本中将“=”设置为变量。我已经尝试设置MDSSTR = %% =和=“%% =”无效
我想要做的一个例子如下:
//example
set MDSStr="="
set mdsvar="Hello=World"
if NOT %mdsvar% == %MDSStr% ( Do Something)
有谁知道如何使“=”符号成为字符串?提前谢谢。
答案 0 :(得分:3)
@ECHO OFF
SETLOCAL
set "MDSStr=="
set "mdsvar=Hello=World"
set "mdsvar2==Hello World"
set "mdsvar3=Hello World="
set "mdsvar4=Hello=====World"
set "mdsvar5======Hello World"
set "mdsvar6=Hello World====="
set "mdsvar7=Hello World"
SET mds
ECHO --------------------------------------------------------------------
FOR /f "tokens=1*delims==" %%a IN ("x%mdsstr%x") DO IF "%%b"=="" (ECHO no "=") ELSE (ECHO "=" found)
FOR /f "tokens=1*delims==" %%a IN ("x%mdsvar%x") DO IF "%%b"=="" (ECHO no "=") ELSE (ECHO "=" found)
FOR /f "tokens=1*delims==" %%a IN ("x%mdsvar2%x") DO IF "%%b"=="" (ECHO no "=") ELSE (ECHO "=" found)
FOR /f "tokens=1*delims==" %%a IN ("x%mdsvar3%x") DO IF "%%b"=="" (ECHO no "=") ELSE (ECHO "=" found)
FOR /f "tokens=1*delims==" %%a IN ("x%mdsvar4%x") DO IF "%%b"=="" (ECHO no "=") ELSE (ECHO "=" found)
FOR /f "tokens=1*delims==" %%a IN ("x%mdsvar5%x") DO IF "%%b"=="" (ECHO no "=") ELSE (ECHO "=" found)
FOR /f "tokens=1*delims==" %%a IN ("x%mdsvar6%x") DO IF "%%b"=="" (ECHO no "=") ELSE (ECHO "=" found)
FOR /f "tokens=1*delims==" %%a IN ("x%mdsvar7%x") DO IF "%%b"=="" (ECHO no "=") ELSE (ECHO "=" found)
GOTO :EOF
这演示了一种检测字符串中=
的存在的方法。
从mds
开始的变量被设置为包含=
的各种字符组合 - 一些在开头,一些在结尾,一些在中间。最后一个变量设置为不包含=
。
然后显示mds
变量中设置的值,并为报告处理每个值。
不幸的是,您似乎解释了 您想要做什么,但不是 您要做的事情。也许它只是find out whether the string contains "="
,但这似乎被要求变量值 =
答案 1 :(得分:0)
你需要逃避=
。尽量这样做^=
。
答案 2 :(得分:0)
要在字符串中加上“=”,请执行以下操作:
set "MDSStr=="
回显你的字符串并将输出传递给find命令,找到只显示不包含find字符串(=)的行:
set "MDSStr=="
set mdsvar="Hello=World"
echo(%mdsvar% | find /v "%MDSStr%"