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-ID: 111445

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

Ausgedruckt am: 22.11.2024 um 09:11 Uhr

anokkona
anokkona 15.03.2009 um 17:54:19 Uhr
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!
miniversum
miniversum 15.03.2009 um 18:15:26 Uhr
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  
anokkona
anokkona 15.03.2009 um 18:20:49 Uhr
Goto Top
Ach so, danke viel mals, das ist genau das richtige.

Danke

LG Anok
anokkona
anokkona 16.03.2009 um 19:57:27 Uhr
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!
miniversum
miniversum 16.03.2009 um 20:23:45 Uhr
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.