2013-09-27 43 views
1

我想计算来自CMD的特定文件的平均行数。 要查找一个文件的行数我有:来自CMD的平均文件行数

findstr /R /N "^" "FILENAME" | find /C ":"

所以我有这样的事情:

 
setlocal enabledelayedexpansion 
set sum = 0 
for /l %%x in (1, 1, 10) do (
    set tmpnum = findstr /R /N "^" "file-%%x.csv" | find /C ":" 
    set /a sum=sum+tmpnum 
) 
echo %sum%/10 
endlocal 

的问题是,sum始终为0,我相信tmpnum没有得到正确的值。

回答

3

set tmpnum =行错了,您不能将一个变量设置为像这样的命令的输出。正确的语法是

for /l %%x in (1, 1, 10) do (
    for /f %%c in ('findstr /R /N "^" "file-%%x.csv" ^| find /C ":"') do (
     set /a sum=sum+%%c 
    ) 
) 

当然echo %sum%/10也不会做数学题 - 你需要另一个SET /A了点。