добавить несколько номеров в пакете - PullRequest
3 голосов
/ 07 апреля 2011

Я пытаюсь добавить два числа, полученные из файла.
Но он показывает только последнее значение суммы.Спасибо за помощь!

@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 Ответ

2 голосов
/ 07 апреля 2011

Проблема заключается в процентном расширении в строке 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!
)  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...