Batch file 计算CMD/Windows中文本文件的非空行数

Batch file 计算CMD/Windows中文本文件的非空行数,batch-file,cmd,Batch File,Cmd,在CMD/Batch/Windows中,如何计算文本文件的非空行数?只需在findstr结果上循环,搜索行中至少一个字符(regex=)并计数。 空行将不匹配 @echo off set counter=0 for /F %%a in ('findstr /R . test.txt') do (set /A counter=%counter%+1) echo %counter% 如果您认为只有空格的行是空的,则筛选出只包含“替换代码”的空间的行。< /代码>按 /c:“[^ ] < 虽

在CMD/Batch/Windows中,如何计算文本文件的非空行数?

只需在findstr结果上循环,搜索行中至少一个字符(regex=)并计数。 空行将不匹配

@echo off

set counter=0
for /F %%a in ('findstr /R . test.txt') do (set /A counter=%counter%+1)

echo %counter%

如果您认为只有空格的行是空的,则筛选出只包含“替换代码”的空间的行。< /代码>按<代码> /c:“[^ ] < <代码>


虽然这将删除包含
的行
=
符号(不仅仅是空格、制表符和新行)

只需使用
for/F
循环遍历文本文件内容(
示例中的file.txt
),因为它跳过空行并使用计数器变量:

set /A "COUNT=0"
for /F useback^ delims^=^ eol^= %%L in ("file.txt") do set /A "COUNT+=1"
echo %COUNT%
奇数不带引号的选项字符串语法
useback^delims^=^eol^=
用于将
eol
delims
设置为空(注意
eol
默认为
)。如果您认为只包含空格(空格、制表符)的行为空,则只需删除选项>代码> DelIs^=^ .< /P> <代码> FordSTR”.“Test.txt查找/c/v”。
findstr
将对输入文件中的行使用正则表达式
(至少匹配一个字符),并将匹配行通过管道输送到
find
以计算输出行。

对于/F%%a in(theFile.txt)中的/F%%a,请设置/a行+=1
@echo off
:====
set "file=c:\file.txt"
:=====
set count=1
for /f "usebackq" %a in ("%file%") do set /a count=count+1
echo %count%
set /A "COUNT=0"
for /F useback^ delims^=^ eol^= %%L in ("file.txt") do set /A "COUNT+=1"
echo %COUNT%