批量添加多个数字

时间:2011-04-07 12:33:14

标签: 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

1 个答案:

答案 0 :(得分:2)

问题在于行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!
)