我正在尝试检查批处理文件中的变量是否以“包含BETA在某处并以”结尾“开头.
可能吗?
如果是的话,有人可以帮助我吗?
@ECHO OFF SETLOCAL SET var=abc&CALL :check SET var="abc"&CALL :llcheck SET var="")&CALL :check SET var=")"&CALL :llcheck SET var=abc")"&CALL :llcheck SET var=xyzbetazyx&CALL :check SET var="xyzbetazyx"&CALL :llcheck SET var=xyzbetazyx")"&CALL :llcheck SET var=xyzbetazyx")"&CALL :check SET var="xyzbetazyx")&CALL :check GOTO :eof :: Lop last,then check :llcheck SET var=%var:~0,-1% :check SET result=N SET var2=%var% SET varvar=%var% >test1.txt ECHO %var:~0,1%%var:~-2% >test2.txt ECHO "") FC test1.txt test2.txt >nul IF ERRORLEVEL 1 GOTO done SET var|FINDSTR /b "var="|FINDSTR /i "beta" >nul IF ERRORLEVEL 1 GOTO done SET result=Y :done ECHO %var% starts " has BETA and ends ") : %result% GOTO :eof
哪里有遗嘱……
设置不平衡的变量“可能很棘手.我只是设置它平衡并砍掉最后一个字符(:llcheck条目:lop last并检查.
Essentiall,我已经将变量复制到var2和varvar in oder中来演示如果设置这些变量名会发生什么.
然后生成两个文件. TEST1.TXT包含var的第一个和最后两个字符,而TEST2.TXT只是“”)
比较两者 – 如果它们不相同,那么变量不会启动“并结束”)否则很好 – 可以简单地将var写入文件并使用findstr来查找beta,但我决定发送SET的输出var应该是表单中所有var *变量的内容
var=abc var2=abc varvar=abc
到findstr,找到一个开始(/ b)var =并查找是否包含字符串beta / i选择不区分大小写.如果您想在UPPER-CASE中专门使用BETA,只需将beta更改为BETA并删除/ i.
结果设置为Y或N.