2013-09-27 75 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了點。