anokkona
Goto Top

batch zeilen einer txt zählen und als variable speichern.

Hallo Mitteinander

Ich möchte gerne mit einer Batch in einer txt alle Zeilen zählen und die Ergebnisszahl als Variable weiterverwenden.

Ich habe e¨twas zum auswerten einer logdatei gefunden:
Set /A "Counter=0"
FOR /F "delims=" %%A IN (blabla.txt) DO SET /A "COUNTER+=1"

Ich weis hier allerdings nicht genau was passiert und habe keine Ausgabe...


Ich wäre froh um jede Hilfe.

LG Anok

Content-Key: 111445

Url: https://administrator.de/contentid/111445

Printed on: April 19, 2024 at 00:04 o'clock

Member: anokkona
anokkona Mar 15, 2009 at 16:54:19 (UTC)
Goto Top
Hallo

Ich hab nun eine Lösung gefunden:

set "backup=C:\Users..."
FOR /F "delims= " %%i in ('Dir %backup% /s /A-D^|find "Datei(en)"') do echo Es sind Dateien %%i vorhanden.

vielen dank!
Member: miniversum
miniversum Mar 15, 2009 at 17:15:26 (UTC)
Goto Top
Bei deinem Code im Eingangsposting fehlt nur die Ausgabe noch.
Set /A "Counter=0"  
FOR /F "delims=" %%A IN (blabla.txt) DO SET /A "Counter+=1"  
echo %Counter% Zeilen
Die For-Schleife gehe alle Zeilen (außer Leerzeilen) durch. In jeder Zeile wied so der Counter um eins hochgezählt.

Edit:
Etwas schöner ist diese Methode mit Findstr:
FOR /F "delims=:" %%A IN ('findstr /N .* "blabla.txt"') DO echo %%A Zeilen  
Member: anokkona
anokkona Mar 15, 2009 at 17:20:49 (UTC)
Goto Top
Ach so, danke viel mals, das ist genau das richtige.

Danke

LG Anok
Member: anokkona
anokkona Mar 16, 2009 at 18:57:27 (UTC)
Goto Top
Hallo

Ich bin noch lernender im programierungs-ereich, desshalb:

Kanst du mir funktion von findster kurz erklären? eifach was es bewirkt ect...

Vielen Dank!
Member: miniversum
miniversum Mar 16, 2009 at 19:23:45 (UTC)
Goto Top
Mit findstring kannst du in einer Datei bestimtme Worte suchen. Es werden dir dan diese Zeilen ausgegeben. Der zusätzliche Parameter /N bewirkt das die Zeilennumemr jeder Trefferzeile vor der jeweiligen Zeile angezeigt wird (gefolgt von einem ":").
In der Hilfe zum Findstring befehl wirst du sehen das außerdem "regular expresions" unterstützt werden. Dies wird hier genutzt. Statt nach einem Bestimmtem begrif zu suchen wird hier nach .* gesucht. Dies bedeutet ein beliebiges Zeichen das kein oder mehrmals oft vorkommt. Dadurch wird jede zeile ausgegeben und entsprechend durchnummrriert.
Das ganze wird in der For-Schleife durchlaufen. Würde nach dem do ein
set Couter=%%A
stehen würde bei jeder Zeile der Datei der Variabeln %counter% so die aktuelle Zeilennummer zugewieeen werden. Läst man sich nun nach dem For diese Variable ausgeben enthält sie die Nummer der letzten Zeile, also die Gesamtzeilenanzahl.