设置变量中所有文件的名称,其中行数大于1

时间:2013-11-22 11:43:14

标签: batch-file dos

说一个目录包含以下文件:(没有子目录)

AError.csv - 1 line

BError.csv - 2 lines

CError.csv - 10 lines

DError.csv - 10 lines

ASuccess.csv - 1000 lines

然后输出应该是:文件名包含错误并且有多行的所有文件名。

对于上面的输出应该是:

BError.csv CError.csv DError.csv

我在变量中设置了行数

@echo off

cls

setlocal EnableDelayedExpansion

set "cmd=findstr /R /N "^^" *.csv | find /C ":""


for /f %%a in ('!cmd!') do set number=%%a

echo %number%

1 个答案:

答案 0 :(得分:2)

@echo off

    setlocal enableextensions enabledelayedexpansion
    set "_list="
    for %%f in ("*error*.csv") do (
        for /F %%l in ('type "%%~ff" ^| find /c /v "" ') do (
            if %%l gtr 1 set "_list=!_list! %%~nxf"
        )
    )
    echo %_list%
    endlocal

对于满足命名条件的每个文件,计算行数,如果大于1,则计算变量。