TXT-Datei nach Begriffen durchsuchen, ganze Zeile löschen und in neue TXT-Datei schreiben
Hallo,
ich habe eine lange TXT-Datei mit Parametern und Werten.
Mit Hilfe einer Vergleichsliste für ungültige Parameter, wollte ich nun die TXT-Datei bereinigen.
Bedeutet, Zeilen mit einem solchen Parameter sollen vollständig gelöscht werden, zur Sicherung aber in eine separate neue TXT-Datei geschrieben werden.
Als Ansatz habe ich diese Version verwendet:
Die TXT-Datei wird bereinigt und bereits als Backup angelegt,
mir fehlt aber die zweite TXT-Datei mit den gelöschten Zeilen.
Kann mir jemand helfen?
ich habe eine lange TXT-Datei mit Parametern und Werten.
Mit Hilfe einer Vergleichsliste für ungültige Parameter, wollte ich nun die TXT-Datei bereinigen.
Bedeutet, Zeilen mit einem solchen Parameter sollen vollständig gelöscht werden, zur Sicherung aber in eine separate neue TXT-Datei geschrieben werden.
Als Ansatz habe ich diese Version verwendet:
@echo off &setlocal
REM Datei, die du verarbeiten willst:
set "file=parameterliste.txt"
set "parameter=ungueltig.txt"
set "tmpfile=%file%_BEREINIGT"
setlocal EnableDelayedExpansion
<"!file!" >"!tmpfile!" (
for /f %%i in ('type "!file!"^|find /c /v ""') do for /l %%j in (1 1 %%i) do (
set "line=" &set /p"line="
set "found="
if defined line (
for /f "usebackq tokens=1-2 delims=;" %%k in ("%parameter%") do (
if "!line!" neq "!line:%%~k=!" set "found=1"
)
if not defined found echo(!line!
) else (
echo (
)
)
)
move /y "!tmpfile!" "!file!"
Die TXT-Datei wird bereinigt und bereits als Backup angelegt,
mir fehlt aber die zweite TXT-Datei mit den gelöschten Zeilen.
Kann mir jemand helfen?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 397177
Url: https://administrator.de/contentid/397177
Ausgedruckt am: 22.11.2024 um 22:11 Uhr
1 Kommentar
Ungetestet:
Steffen
@echo off &setlocal
REM Datei, die du verarbeiten willst:
set "file=parameterliste.txt"
set "parameter=ungueltig.txt"
set "out=datei2.txt"
set "tmpfile=%file%_BEREINIGT"
setlocal EnableDelayedExpansion
<"!file!" >"!tmpfile!" 3>"!out!" (
for /f %%i in ('type "!file!"^|find /c /v ""') do for /l %%j in (1 1 %%i) do (
set "line=" &set /p"line="
set "found="
if defined line (
for /f "usebackq tokens=1-2 delims=;" %%k in ("%parameter%") do (
if "!line!" neq "!line:%%~k=!" set "found=1"
)
if not defined found (
echo(!line!
) else (
>&3 echo(!line!
)
) else (
echo(
)
)
)
move /y "!tmpfile!" "!file!"