我尝试添加从文件中收到的两个号码 但它只显示总和的最后一个值。谢谢你的帮助!
@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
答案 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!
)