我想创build一个batch file,它读取2个不同的值,并根据它们的比较结果进行相应的处理。 但是,比较从来没有工作。 代码是:
REM string1 and string2 contain the following test string "---------- COUNT.TXT 14" from which the number at the very right will be extracted in the next lines: REM read numbers from strings and save as variables set /a var1 =%:string1:~22,2% set /a var2 =%:string2:~22,2% IF #var1# == #var2# ( ... )
任何想法,为什么条件/比较永远不会工作? “SET var”显示两个variables是相等的(var1 = 14,var2 = 14),但是在IF中它们不被识别为这样。 任何指导将非常感谢!
stringbtw。 是find / c(查找和计数)的第二个输出行。
input命令输出到批量variables
如何使用批次更换壁纸
windowsbatch file – 连接子目录中的所有文件
如何通过batch file获取全球IPv6地址
如何更换! 到批21%优雅?
dos批处理:将时间转换为帧(浮点运算)
批循环没有迭代超出第一个条目
安排laravel 5.3任务在windows中运行每分钟
在batch file中的前一天的variables
windows批处理:计算使用forfiles命令删除的文件数量
这是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 )
无需关心,如果是两位数字或一个或六个…
您的任务中有额外的不需要的冒号。 这两行应该如下所示:
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%
REM string1 and string2 contain eg the following test string "---------- COUNT.TXT: 14" set /a var1=%string1:*: =% set /a var2=%string2:*: =% IF NOT "%var1%"=="%var2%" (echo not equal)
总结建议这是工作代码的样子,应特别注意与包括看似无害的空间在内的语法相匹配。
总结以上是内存溢出为你收集整理的批量中频variables比较神秘不工作全部内容,希望文章能够帮你解决批量中频variables比较神秘不工作所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)