snboy2010
Goto Top

Script suchen und ersetzen in txt Datei

Ein herzliches Hallo an alle hier. Ich bitte um Hilfe bei der Korrektur der Syntax.
Ich möchte in einem Textdokument Hans Mustermann durch Peter Haensel ersetzen. So sieht meine Batch aus:
@ECHO off
SETLOCAL enabledelayedexpansion

REM
REM Testprogramm
REM Suchen und Ersetzen in einer Textdatei
REM

SET "quell_datei=C:\Users\Einzelsignatur_Org.txt"  
SET "ziel_datei=C:\Users\Einzelsignatur_Org2.txt"  
SET "suchen_nach=max mustermann"  
SET "ersetzen_duch=Peter Haensel"  

FOR /f "delims=" %%i IN ('FINDSTR . "%quell_datei%"') DO (  
SET zeile=%%i& CALL :ersetzen !zeile!
)
GOTO :weiter
:ersetzen

SET zeile=!zeile:%suchen_nach%=%ersetzen_durch%!

IF [!zeile!] EQU  (ECHO.>>%ziel_datei%) ELSE (ECHO !zeile!>>%ziel_datei%)
GOTO :eof

:weiter

ECHO Fertig

pause

Wenn ich die Batch nun ausführe kommt die Fehlermeldung:

kann syntaktisch an dieser Stelle nicht verarbeitet werden.

Könntet Ihr mir bitte helfen?

Content-Key: 435212

Url: https://administrator.de/contentid/435212

Printed on: April 23, 2024 at 23:04 o'clock

Member: emeriks
emeriks Apr 01, 2019 at 09:30:02 (UTC)
Goto Top
Korrigiere doch bitte zuerst den Code-Block in Deiner Frage, damit wir sicher wissen, was Du da als Batch hast.
Member: snboy2010
snboy2010 Apr 01, 2019 at 10:10:52 (UTC)
Goto Top
Ist gemacht.
Member: emeriks
emeriks Apr 01, 2019 at 10:23:40 (UTC)
Goto Top
Zitat von @snboy2010:
Wenn ich die Batch nun ausführe kommt die Fehlermeldung:

kann syntaktisch an dieser Stelle nicht verarbeitet werden.
Und das "Was" wird nicht genannt? Was nicht verarbeitet werden kann?
Member: snboy2010
snboy2010 Apr 01, 2019 at 10:27:25 (UTC)
Goto Top
Na die Fehlermeldung ist immer noch da. ))
Member: snboy2010
snboy2010 Apr 01, 2019 at 10:35:08 (UTC)
Goto Top
Mit diesem Code geht zwar das Ersetzen, allerdings wird die ganze Zeile verändert und nicht die einzelnen Zeichen. Dadurch ändert sich die komplette Formatierung.
</@ECHO off
SETLOCAL enabledelayedexpansion

REM Testprogramm zum Aendern von "" in "

SET quelle=C:\Users\Einzelsignatur_Org.txt
SET ziel= C:\Users\Einzelsignatur_Org2.html


FOR /f "delims=" %%i IN ('FINDSTR . %quelle%') DO (
SET ganze_zeile=%%i
SET ganze_zeile=!ganze_zeile:Max Mustermann=Peter Haensel!
ECHO !ganze_zeile!
ECHO !ganze_zeile! >> %ziel%
)

pausecode>
Member: snboy2010
snboy2010 Apr 01, 2019 at 11:19:11 (UTC)
Goto Top
So jetzt habe die Formatierung der Quelle Datei angepasst. Letzte Frage:
In der oben beschriebenen Prozedur sucht man nach Max Mustermann und ersetz durch Peter Haensel.

Wie kann ich ein Abfrage hier erstellen?
Also z.B. Der Code sucht nach Max Mustermann und wenn dieses gefunden wurde, soll eine Eingabe erfolgen durch was dieses geändert werden soll
Member: emeriks
emeriks Apr 01, 2019 at 11:39:31 (UTC)
Goto Top
Too many finger on keyboard Error!
Member: snboy2010
snboy2010 Apr 01, 2019 at 11:49:00 (UTC)
Goto Top
So ist erledigt:

Hier der Code:

</@ECHO off
SETLOCAL enabledelayedexpansion

REM Testprogramm zum Aendern von "" in "

SET quelle=C:\Users\Einzelsignatur_Org.txt
SET ziel= C:\Users\Einzelsignatur_Org2.html

set /p Name=Bitte Name angeben:


FOR /f "delims=" %%i IN ('FINDSTR . %quelle%') DO (
SET ganze_zeile=%%i
SET ganze_zeile=!ganze_zeile:Max Mustermann=%Name%!
ECHO !ganze_zeile!
ECHO !ganze_zeile! >> %ziel%
)

pausecode>
Member: emeriks
emeriks Apr 01, 2019 at 12:06:47 (UTC)
Goto Top
Du lernst es wohl nie?
Member: snboy2010
snboy2010 Apr 01, 2019 at 12:15:28 (UTC)
Goto Top
Was den jetzt wieder?
Member: emeriks
emeriks Apr 01, 2019 at 12:38:39 (UTC)
Goto Top
Zitat von @snboy2010:
Was den jetzt wieder?

pausecode>
Member: Henere
Henere Apr 01, 2019 at 17:14:47 (UTC)
Goto Top
Hier könnte auch ihr Code stehen
Mitglied: 139374
139374 Apr 01, 2019 updated at 18:11:50 (UTC)
Goto Top
Lass das Batch rumgefrickel, nimm Powershell:
(gc "C:\Users\Einzelsignatur_Org.txt") -replace 'Max Mustermann',(read-host "Name eingeben") | sc "C:\Users\Einzelsignatur_Org2.txt"