2016-08-29 2 views

Antwort

2

Nur foestr Ergebnis, für die Suche nach mindestens einem Zeichen (regex =.) In Zeilen und zählen. Leere Zeilen werden nicht gefunden.

@echo off 

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

echo %counter% 

wenn man bedenkt, dass Linien nur Räume leer sind, herauszufiltern Linien, die nur Leerzeichen enthalten, ersetzen . durch /C:"[^ ]"

findstr /R /C:"[^ ]" test.txt 
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% 

obwohl dies wird Linien, die ; enthält, =, , , <tab>, <space>, <new line> Symbole (nicht nur Leerzeichen und Tabulatoren und neue Zeilen)

1

iterieren einfach durch die Textdatei Inhalt (file.txt im Beispiel) eine for /F Schleife, da sie Leerzeilen übersprungen und eine Zählvariable verwendet werden:

set /A "COUNT=0" 
for /F useback^ delims^=^ eol^= %%L in ("file.txt") do set /A "COUNT+=1" 
echo %COUNT% 

Die ungeradee unquoted Options-String Syntax useback^ delims^=^ eol^= verwendet wird, um zu Setzen Sie sowohl eol als auch delims auf leer (beachten Sie, dass eol standardmäßig ; ist). Wenn Sie Zeilen, die nur Leerzeichen (Leerzeichen, Tabulatoren) enthalten, als leer betrachten, entfernen Sie einfach die Option delims^=^.

3
findstr "." test.txt | find /c /v "" 

findstr den regulären Ausdruck . (Match mindestens ein einzelnes Zeichen) gegen den Zeilen in der Eingabedatei verwenden und die dazu passenden Rohrleitungen zu find die Ausgangsleitungen zu zählen.

Verwandte Themen