如何从目录中的所有文本文件获取总行数

nic*_*kyb 1 windows command-line text count

我有一个包含数百个文本文件的目录,我需要一种方法来计算所有txt文件的总行数.我正在使用Windows,我认为通过命令提示符找到它很容易,但以下只返回文件数:

C:\> dir /b c:\temp | find /c /v “~~~”
Run Code Online (Sandbox Code Playgroud)

这只是一个例子,但当我希望它通过每个文件并计算没有~~~的总行数时,它返回没有"~~~"的文件数.任何有关总计数的建议都将不胜感激.

Mag*_*goo 6

@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir\t w o"
SET /a countfiles=0
SET /a countlines=0
FOR /f "delims=" %%a IN (
  'dir /b /a-d "%sourcedir%\*" '
  ) DO (
 SET /a countfiles+=1
 FOR /f "delims=" %%c IN ('find /c /v "~~~" "%sourcedir%\%%a"') DO CALL :setcount %%c
)
SET cou

GOTO :EOF

:setcount
IF "%2" neq "" shift&GOTO setcount
SET /a countlines +=%1
GOTO :EOF
Run Code Online (Sandbox Code Playgroud)

您需要更改设置sourcedir以适合您的具体情况.

对于目录中找到的每个文件名,计算一个文件,然后通常setcount将该find命令的输出传递给子例程

---------- U:\SOURCEDIR\T W O\FILE4.TXT: 3
Run Code Online (Sandbox Code Playgroud)

由于我们需要此字符串中的最后一项,我们只需将参数移位直到第二项不存在,因此第一项必须是来自的行数find,因此请添加它.

  • 对不起,如果评论不清楚,但我希望它包含子目录 (2认同)