Wert aus Textzeile prüfen und ganze Zeile in neue Textdatei verschieben
Hallo alle zusammen,
ich habe mal wieder ein Problem, bei welchen mir keine Lösung einfällt und ich auch keine finden kann
Ich möchte aus einer Textdatei jede Zeile einzeln auslesen, den 3. Wert überprüfen und wenn dieser 3. Wert der Bedienung entspricht, die ganze Zeile in Textdatei A schreiben, wenn nicht, die ganze Zeile in Textdatei B schreiben.
Mein Lösungsansatz bis jetzt:
Aber leider schreibt er mir hier natürlich nur das ausgewertete Token in die neuen Textdateien. Ich könnte jetzt alle tokens auswerten (zB: tokens=1-10) und dann alle Variablen in die Textdatei schreiben (echo %%m %%n ... >> textdatei_a.txt) aber es sind über 50 Werte in der auszuwertenden Textdatei. Das geht ja nicht wenn ich mich nicht irre oder?!
Weiß jemand Rat?
Vielen Dank schon im voraus.
Grüße,
Marsl
ich habe mal wieder ein Problem, bei welchen mir keine Lösung einfällt und ich auch keine finden kann
Ich möchte aus einer Textdatei jede Zeile einzeln auslesen, den 3. Wert überprüfen und wenn dieser 3. Wert der Bedienung entspricht, die ganze Zeile in Textdatei A schreiben, wenn nicht, die ganze Zeile in Textdatei B schreiben.
Mein Lösungsansatz bis jetzt:
for /f "tokens=3 delims=!" %%m in (Textdatei.txt) do (
if %%m == bedinung (
echo %%m >> textdatei_a.txt
) else (
echo %%m >> textdatei_a.txt
)
Aber leider schreibt er mir hier natürlich nur das ausgewertete Token in die neuen Textdateien. Ich könnte jetzt alle tokens auswerten (zB: tokens=1-10) und dann alle Variablen in die Textdatei schreiben (echo %%m %%n ... >> textdatei_a.txt) aber es sind über 50 Werte in der auszuwertenden Textdatei. Das geht ja nicht wenn ich mich nicht irre oder?!
Weiß jemand Rat?
Vielen Dank schon im voraus.
Grüße,
Marsl
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 157488
Url: https://administrator.de/forum/wert-aus-textzeile-pruefen-und-ganze-zeile-in-neue-textdatei-verschieben-157488.html
Ausgedruckt am: 17.05.2025 um 11:05 Uhr
5 Kommentare
Neuester Kommentar
Hallo marsl84!
Wenn der zu prüfende Wert "speziell" genug wäre (und daher nicht auch in einem anderen "token" vorkommen kann) sollte sich das mit
lösen lassen - ansonsten könntest Du geschachtelte "
Grüße
bastla
P.S.: Ich wollte mit der Schreibweise "Bedingung" nicht noch eine Variante ins Spiel bringen - "Bedienung" und "bedinung" sollten für den Anfang genügen ...
Wenn der zu prüfende Wert "speziell" genug wäre (und daher nicht auch in einem anderen "token" vorkommen kann) sollte sich das mit
findstr "!bedinung!" Textdatei.txt>>textdatei_a.txt
findstr /v "!bedinung!" Textdatei.txt>>textdatei_b.txt
for
"-Schleifen versuchen:for /f "delims=" %%a in (Textdatei.txt) do (
for /f "tokens=3 delims=!" %%m in (%%a) do (
if %%m==bedinung (
echo %%a >> textdatei_a.txt
) else (
echo %%a >> textdatei_b.txt
)
)
bastla
P.S.: Ich wollte mit der Schreibweise "Bedingung" nicht noch eine Variante ins Spiel bringen - "Bedienung" und "bedinung" sollten für den Anfang genügen ...
Moin marsi84,
du könntest eine äußere FOR/F-Anweisung zusätzlich vorschalten und dort die ganze Zeile (also FOR /F "delims="...) transportieren.
Sinngemäß und ungetestet:
Allerdings... ich würde erstmal prüfen, ob du es nicht einfacher mit "FindStr /i "bedingung" textdatei.txt" bzw. "FindStr /i /v "bedingung" textdatei.txt" gebacken bekommst.
Grüße
Biber
du könntest eine äußere FOR/F-Anweisung zusätzlich vorschalten und dort die ganze Zeile (also FOR /F "delims="...) transportieren.
Sinngemäß und ungetestet:
FOR /F "delims=" %%i in Textdatei.txt DO (
for /f "tokens=3 delims=!" %%m in ("%%i") do (
if "%%m" == "bedinung" (
echo %%i>> textdatei_a.txt
) else (
echo %%i>> textdatei_b.txt
)
)
Allerdings... ich würde erstmal prüfen, ob du es nicht einfacher mit "FindStr /i "bedingung" textdatei.txt" bzw. "FindStr /i /v "bedingung" textdatei.txt" gebacken bekommst.
Grüße
Biber