mit batch in txt lesen und schreiben
Hallo Team
Möchte eine batch-Datei erstellen die aus einer txt eine variable holt 1 dazuzählt wieder rein schreibt und speichert.
Habe heute schon viele Beiträge durchgearbeitet, aber leider nichts verstanden. Bin mir sicher, das man anhand der Beiträge hier im Forum so was zusammen gebastelt bekommt. Ich habe es aber nicht hin bekommen, da ich davon keinen Plan habe.
Und um klein anzufangen meine erste Frage.
Ich habe eine Datei E:\log.txt
Inhalt:
starts = 98
fehler = 12
verbindungen = 25
Nun würde ich gerne die mittels batch die Zahlen aus geben.
@echo off
echo Es waren %zahl% starts
echo Es waren %zahl% fehler
echo Es waren %zahl% verbindungen
pause
Wie sollte der richtige Code aussehen?
Gruß
Petra
Möchte eine batch-Datei erstellen die aus einer txt eine variable holt 1 dazuzählt wieder rein schreibt und speichert.
Habe heute schon viele Beiträge durchgearbeitet, aber leider nichts verstanden. Bin mir sicher, das man anhand der Beiträge hier im Forum so was zusammen gebastelt bekommt. Ich habe es aber nicht hin bekommen, da ich davon keinen Plan habe.
Und um klein anzufangen meine erste Frage.
Ich habe eine Datei E:\log.txt
Inhalt:
starts = 98
fehler = 12
verbindungen = 25
Nun würde ich gerne die mittels batch die Zahlen aus geben.
@echo off
echo Es waren %zahl% starts
echo Es waren %zahl% fehler
echo Es waren %zahl% verbindungen
pause
Wie sollte der richtige Code aussehen?
Gruß
Petra
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 82212
Url: https://administrator.de/forum/mit-batch-in-txt-lesen-und-schreiben-82212.html
Ausgedruckt am: 26.12.2024 um 00:12 Uhr
8 Kommentare
Neuester Kommentar
Das müste so gehen:
miniversum
@echo off
FOR /F "tokens=3 delims= " %%i in ('findstr /i /b "starts =" "E:\log.txt"') do set "starts=%%i"
FOR /F "tokens=3 delims= " %%i in ('findstr /i /b "fehler =" "E:\log.txt"') do set "fehler=%%i"
FOR /F "tokens=3 delims= " %%i in ('findstr /i /b "verbindungen =" "E:\log.txt"') do set "verbindungen=%%i"
echo Es waren %starts% starts
echo Es waren %fehler% fehler
echo Es waren %verbindungen% verbindungen
pause
FOR /F "tokens=3 delims= " %%i in ('findstr /i /b "starts =" "E:\log.txt"') do set "starts=%%i"
FOR /F "tokens=3 delims= " %%i in ('findstr /i /b "fehler =" "E:\log.txt"') do set "fehler=%%i"
FOR /F "tokens=3 delims= " %%i in ('findstr /i /b "verbindungen =" "E:\log.txt"') do set "verbindungen=%%i"
echo Es waren %starts% starts
echo Es waren %fehler% fehler
echo Es waren %verbindungen% verbindungen
pause
miniversum
Nicht ganz.
So gehts:
So gehts:
echo starts = %starts% > E:\log.txt
echo fehler = %fehler% >>E:\log.txt
echo verbindungen = %verbindungen% >>E:\log.txt
Wobei das halt wirklich die einfachste Lösung ist und auch nur wenn das alle Zeilen sind die in der Datei stehen. Wenn du wirklich Zeilen einfügen willst wird das dann etwas aufwendiger. Ist aber auch möglich.echo fehler = %fehler% >>E:\log.txt
echo verbindungen = %verbindungen% >>E:\log.txt
Moin ppmk22,
suche mal mittels der Forumssuche nach "Zeile in txt einfügen" oder ähnlichem.
Dann findest Du einige Beispiele.
Ein Nettes ist Batch - String suchen und in der Datei Zeile mit berechneten Inhalt einfügen.
Da Batch bzw. die CMD.exe grundsätzlich zeilenorientiert arbeitet und außerdem nicht "in" einer Datei ändern kann (sondern immer nur aus einem Kanal den Input lesen und in einen anderen den Output schreiben), deshalb solltest Du zum Texte ändern nur dann Batch verwenden, wenn nun gar nichts anderes zur Hand ist.
Unproblematisch ist immer nur das komplette Neu-Schreiben einer Datei oder das Löschen/Hinten-Anfügen von Zeilen.
Insbesondere wenn Deine Datei (zumindest in der Version 2.0) den Aufbau einer Windows *.INI-Datei haben wird, dann verwende möglichst früh einen der vielen Freeware INI-Datei-Bearbeiter.
Oder lass uns hier im Forum einen zusammenschroten - aber dann mit VBS statt mit native Batch.
Grüße
Biber
suche mal mittels der Forumssuche nach "Zeile in txt einfügen" oder ähnlichem.
Dann findest Du einige Beispiele.
Ein Nettes ist Batch - String suchen und in der Datei Zeile mit berechneten Inhalt einfügen.
Da Batch bzw. die CMD.exe grundsätzlich zeilenorientiert arbeitet und außerdem nicht "in" einer Datei ändern kann (sondern immer nur aus einem Kanal den Input lesen und in einen anderen den Output schreiben), deshalb solltest Du zum Texte ändern nur dann Batch verwenden, wenn nun gar nichts anderes zur Hand ist.
Unproblematisch ist immer nur das komplette Neu-Schreiben einer Datei oder das Löschen/Hinten-Anfügen von Zeilen.
Insbesondere wenn Deine Datei (zumindest in der Version 2.0) den Aufbau einer Windows *.INI-Datei haben wird, dann verwende möglichst früh einen der vielen Freeware INI-Datei-Bearbeiter.
Oder lass uns hier im Forum einen zusammenschroten - aber dann mit VBS statt mit native Batch.
Grüße
Biber