批量中频variables比较神秘不工作

批量中频variables比较神秘不工作,第1张

概述批量中频variables比较神秘不工作

我想创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比较神秘不工作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1284650.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存