batch-file - 批量添加多个号码

标签 batch-file

我尝试将从文件中收到的两个数字相加。
但它只显示总和的最后一个值。感谢您的帮助!

@FOR /F "eol=; tokens=1-3 delims=, " %%i IN (test.txt) DO (  
   set m=%%j   
   set n=%%k  
   set /a sum=%m%+%n%  
   echo sum = %sum%  
   )  

在 test.txt 中我有

alex 4 5  
john 6 7  

我想看看

sum=9  
sum=13  

它只显示

sum=13  
sum=13

最佳答案

问题是 set/a sum=%m%+%n%echo sum = %sum% 行中的百分比扩展。
这些在执行 FOR 循环之前展开。

因此,您得到了“全局”总和集的结果。

最好使用延迟扩展,因为所有包含在 ! 中的变量都在运行时而不是解析时扩展

@echo off
setlocal EnableDelayedExpansion
FOR /F "eol=; tokens=1-3 delims=, " %%i IN (test.txt) DO (  
   set m=%%j   
   set n=%%k  
   set /a sum=m+n
   echo sum = !sum!
)  

关于batch-file - 批量添加多个号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5581068/

相关文章:

windows - 如何从文件打开命令提示符

linux - 如何在window和linux批处理文件中获取二级父目录

Windows 批处理 : Pipe output from exe into a SET VARIABLE where output has spaces

batch-file - 如何隐藏批处理文件的命令提示符

java - 通过在其上运行的 java webapp 重启 tomcat

batch-file - 如何批量输出不带扩展名的文件名?

powershell - 是否可以通过脚本更新Word文档中的表单字段

linux - 为什么 winexe 执行这个 .bat 脚本时会出错?

powershell - 调用powershell函数的批处理脚本

batch-file - 如何将文件复制到C :\Users\Username\AppData\Local (Using batch file)下的所有用户配置文件