在CMD / Windows

时间:2016-08-29 11:02:36

标签: batch-file cmd

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

4 个答案:

答案 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^=,以便将eoldelims都设置为空(请注意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>符号(不仅仅是空格和标签和新行)