我尝试将从文件中收到的两个数字相加。
但它只显示总和的最后一个值。感谢您的帮助!
@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/