2013-03-15 56 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

禾很好,谢谢! – 2013-03-15 16:41:44

+2

你也可以省略'SET/a'命令的任何扩展,因为它不需要它:'SET/a sum = sum + 1'或者更好的是:'SET/a sum + = 1' – Aacini 2013-03-16 01:58:56