2013-03-15 2 views
0

Итак, я создаю простой командный файл, предназначенный для получения строк из текстового файла, затем передайте вывод на wget и загрузите его (используя порт Windows). Единственная проблема, с которой я столкнулась, заключается в добавлении числа в число в цикле for.Добавление двух чисел вместе в цикле for

SETLOCAL ENABLEDELAYEDEXPANSION 
set sum=0 
%ECHO% "Reading %1... " 

for /f "eol=# tokens=* delims= " %%a in (%1) do ( 
    echo %%a | bin\wget -q %%a 
    SET /a sum=%sum%+1 
    echo Hit:%sum% %%a 
) 

%ECHO% "Done!" 
ENDLOCAL 

Это называют как «вызова read_line.bat myfile.txt

Да, я знаю, что я мог бы просто использовать Wget -i myfile.txt, но я предпочел бы не использовать это и есть контроль на других вещах (выход, и очевидный HIT: функция)

ответ

2

Попробуйте использовать ! вместо % для sum для того, чтобы реально использовать замедленное расширение:

for /f "eol=# tokens=* delims= " %%a in (%1) do ( 
    echo %%a | bin\wget -q %%a 
    SET /a sum=!sum!+1 
    echo Hit:!sum! %%a 
) 
+0

Wo rks отлично, спасибо! –

+2

Вы также можете опустить любое расширение в команде 'SET/a', потому что оно не нужно:' SET/a sum = sum + 1' или, еще лучше: 'SET/a sum + = 1' – Aacini

Смежные вопросы