Moin Moin liebe Leute,
meine Frage: Ich möchte eine Datei nach einem bestimmten Wert (000000000) durchsuchen und durch Werte die ich Zeile für Zeile aus einer anderen Datei herausziehe ersetzen. Also jedes mal wenn ich eine 00000000 ausgetauscht habe soll er auch im Quelldokument eine Zeile weiterspringen.
Ich habe mir aus dem
forum schon ein Programm stiebitzt mit dem ich relativ weit gekommen bin. Nun muss ich nur irgendwie die beiden FOR-Schleifen und Variablenübergaben kombinieren.
Vielleicht bin ich auch auf dem Holzweg und es ist viel einfacher... Habe vor Ewigkeiten mal Batchdateien erstellt aber eigentlich keine Ahnung....
Hier was ich bisher habe:
SET "quell_datei=C:\TEST\V2.txt"
SET "ziel_datei=C:\TEST\LEER.txt"
SET "preis_datei=C:\TEST\PIANULL.txt"
SET "suchen_nach=0000000000"
REM Ausgabe einer Fehlermeldung und Programmabbruch
REM falls die Variable "suchen_nach" nicht definiert ist
IF NOT DEFINED suchen_nach (ECHO Fehler: Die Variable suchen_nach nicht definiert!&GOTO :eof)
REM Loeschen der Ausgabedatei, falls sie (noch) existiert
IF EXIST %ziel_datei% (DEL /f %ziel_datei% 1>NUL 2>NUL)
REM Quell-Datei zeilenweise auslesen
REM und in Variable "zeile" schreiben
FOR /f "delims=" %%i IN ('FINDSTR . "%quell_datei%"') DO (
SET zeile=%%i& CALL :ersetzen !zeile!
) &
FOR /f "delims=" %%k IN ('FINDSTR . "%preis_datei%"') DO (
SET preis=%%k& CALL :ersetzen !preis!
)
GOTO :weiter
:ersetzen
REM innerhalb der Variable "zeile"
REM den Inhalt der Variable "suchen_nach" suchen
REM und diese durch den Inhalt der Variable "ersetzen_durch" ersetzen
SET zeile=!zeile:%suchen_nach%=%preis%!
REM Inhalt der Variable "zeile" in die Ausgabedatei schreiben
IF [!zeile!] EQU [] (ECHO.>>%ziel_datei%) ELSE (ECHO !zeile!>>%ziel_datei%)
GOTO :eof
Vielen Dank für Hilfe und Support!