我想创建一个批处理文件,它读取2个不同的值,并根据它们的比较方式相应地进行。但是,比较永远不会奏效。代码是:
<section class="buttons" role="group">
<button>button 1</button>
<button>button 2</button>
<button>button 3</button>
</section>
<section class="buttons" role="group">
<button>button 1</button>
<button>button 2</button>
<button>button 3</button>
</section>
关于条件/比较为什么不起作用的任何想法? “SET var”显示两个变量相等(var1 = 14,var2 = 14),但在IF中它们不被识别。任何指导将不胜感激!
字符串btw。是find / c的第二个输出行(查找和计数)。
答案 0 :(得分:2)
IF %var1% == %var2%
...(不是#
)或确定:IF "%var1%" == "%var2%"
...
顺便说一下:你的字符串看起来几乎像find /c
的输出如果这是真的,并且丢失的冒号只是一个错字,你可以用以下字符拆分你的字符串:
for /f "tokens=2 delims=:" %%i in ("%string1%") do set /a var1=%%i
甚至更简单:
set /a var1=%string1:*: =%
(从头开始删除,直至(包括):
(冒号空间)(这甚至不需要/a
)
无需关心,如果它是两位数或一或六......
答案 1 :(得分:1)
您的作业中有额外的,不需要的冒号。这两行应如下所示:
set /a var1 =%string1:~22,2%
set /a var2 =%string2:~22,2%
变量名称后的空格正常,但仅在使用SET / A时。最好不要在那里放置一个空间,以便在没有/a
选项的情况下正确地进行分配。
以下创建名称中带有空格的变量 - 通常不是一个好主意:
set var1 =%string1:~22,2%
set var2 =%string2:~22,2%
所以最好使用
set /a var1=%string1:~22,2%
set /a var2=%string2:~22,2%
或
set var1=%string1:~22,2%
set var2=%string2:~22,2%
答案 2 :(得分:0)
REM string1 and string2 contain e.g. the following test string "---------- COUNT.TXT: 14"
set /a var1=%string1:*: =%
set /a var2=%string2:*: =%
IF NOT "%var1%"=="%var2%" (echo not equal)
总结建议这是工作代码的样子,应特别注意匹配语法,包括看似无害的空间。