Проблема заключается в процентном расширении в строке 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!
)