在CMD / Batch / Windows中,如何计算文本文件的非空行数?
答案 0 :(得分:3)
findstr "." test.txt | find /c /v ""
findstr
将使用正则表达式.
(至少匹配一个字符)对照输入文件中的行,并将匹配的行传递给find
以计算输出行
答案 1 :(得分:2)
只需在findstr结果上循环,在行中搜索至少一个字符(正则表达式=。)并计数。 空行将不匹配。
@echo off
set counter=0
for /F %%a in ('findstr /R . test.txt') do (set /A counter=%counter%+1)
echo %counter%
如果您认为仅包含空格的行为空白,则过滤掉仅包含空格的行也会将.
替换为/C:"[^ ]"
findstr /R /C:"[^ ]" test.txt
答案 2 :(得分:1)
使用file.txt
循环简单地遍历文本文件内容(示例中的for /F
),因为它会跳过空行并使用计数器变量:
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
默认为;
)。如果您将仅包含空格(空格,制表符)的行视为空,只需删除选项delims^=^
。
答案 3 :(得分:0)
@echo off
:====
set "file=c:\file.txt"
:=====
set count=1
for /f "usebackq" %a in ("%file%") do set /a count=count+1
echo %count%
虽然这会包含;
,=
,,
,<tab>
,<space>
,<new line>
符号(不仅仅是空格和标签和新行)