@ECHO off
SETLOCAL enabledelayedexpansion
REM
REM Testprogramm
REM Suchen und Ersetzen in einer Textdatei
REM
REM
https://supportnet.de/threads/1481757
REM batti-batch 11/2007
REM
REM lauffaehig ab Windows 2000
REM
SET "quell_datei=vollstaendiger Dateiname incl. Laufwerk und Pfad"
SET "ziel_datei=vollstaendiger Dateiname incl. Laufwerk und Pfad"
SET "suchen_nach=hans mustermann"
SET "ersetzen_durch=clara mustermann"
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!
)
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%=%ersetzen_durch%!
REM Inhalt der Variable "zeile" in die Ausgabedatei schreiben
IF [!zeile!] EQU [] (ECHO.>>%ziel_datei%) ELSE (ECHO !zeile!>>%ziel_datei%)
GOTO :eof
:weiter
REM weitere Verarbeitung
ECHO Fertig^^!