1

我想从 CMD 计算特定文件的平均行数。要查找我得到的一个文件的行数:

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

所以我会有这样的事情:

setlocal enabledelayedexpansion
设置总和 = 0
对于 /l %%x in (1, 1, 10) 做 (
    设置 tmpnum = findstr /R /N "^" "file-%%x.csv" | 查找 /C ":"
    设置 /a sum=sum+tmpnum
)
回显 %sum%/10
本地端

问题是它sum总是 0,我相信tmpnum没有得到正确的值。

4

1 回答 1

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

于 2013-09-27T10:13:51.257 回答