nebeleben
Goto Top

wörter durch andere wörter ersetzen ?

moin also meine frage ist ob ich verschiedene wörter (datum oder namen) durch andere suchen und ersetzen kann ?
es vereinfacht sich ein bisschen dardurch das die anfangs wörter schon vorhanden sind nur steht dahinter noch ein wenig text bsp. :

(abc.txt die datei die bearbeitet werden soll)

datum : 13.11.90
nachname : hansen
blabla : blabla

datum : 12.12.07
nachname : weber
blabla : blabla

(soll werden defg.txt)

13.11.90 peter 19 jahre
nachname : hansen
blabla : blabla

12.12.07 markus 12 jahre
nachname : weber
blabla : blabla

(und in zxy.txt stehen die änderungen dafür)

13.11.90 peter 19 jahre
12.12.07 markus 12 jahre

hoffe jemand ahnt im ansatz was ich meine : )
würde mich freuen wenn mir jemand helfen kann

danke für eure gute hilfe auch in den vorangegangenen fragen !

gruß nebel

Content-ID: 90902

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

Ausgedruckt am: 25.11.2024 um 07:11 Uhr

Milad007
Milad007 30.06.2008 um 07:51:17 Uhr
Goto Top
Hallo!
In jedem Text-Editor gebt es ein Such-Funktion-Dialolg. Diesen rufest Du in den meisten Fällen mit Strg + F.
In diesem Dialog hast Du auch die Möglichkeit, der gesuchte Text mit einem andern zu ersetzen.

MfG
Milad
nebeleben
nebeleben 30.06.2008 um 09:53:16 Uhr
Goto Top
das ist mir sehr wohl bekannt : )
ALLERDINGS möchte ich es ja in einer batch datei haben so das es automatisch läuft ...
wenn mir das jemand sagen könnte währe das wunderschön ! is wirklich wichtig ! lieben dank im vorraus gruß nebel
bastla
bastla 30.06.2008 um 11:24:15 Uhr
Goto Top
Hallo nebeleben!

Das ist zwar technisch machbar, allerdings müsste sichergestellt sein, dass das als Schlüssel/Suchbegriff verwendete Datum jeweils nur einmal vorkommt; außerdem muss der Suchbegriff (für die Datumszeile, welche ersetzt werden soll) in Zeiile 5 exakt (inkl Leerzeichen) eingegeben werden.
@echo off & setlocal
set "Quelle=D:\abc.txt"  
set "Ziel=D:\defg.txt"  
set "Liste=D:\zxy.txt"  
set "Suche=datum : "  

if exist "%Ziel%" del "%Ziel%"  
for /f "usebackq delims=" %%i in ("%Quelle%") do call :ProcessLine "%%i"  
goto :eof

:ProcessLine
set "Zeile=%~1"  
echo %~1|findstr /c:"%Suche%">nul || goto :Schreiben  
for /f "tokens=2 delims=: " %%d in (%1) do set "Datum=%%d"  
if not defined Datum echo Fehlerhafte Zeile: %1 & goto :Schreiben
for /f "delims=" %%a in ('findstr /b /c:"%Datum%" "%Liste%"') do set "Zeile=%%a"  
if "%Zeile%"==%1 echo Nicht ersetzt: %1  

:Schreiben
>>"%Ziel%" echo %Zeile%  
goto :eof
Grüße
bastla
nebeleben
nebeleben 30.06.2008 um 16:56:16 Uhr
Goto Top
danke vielmahls bastla ! aber ich hab noch ein problem und zwar würde ich einma gerne wissen wie ich das umstellen kannd as es z.b. in zeile 6 steht oder 4 und genau das is auch mein problem die anreihung ist nehmlich so :

(abc.txt die datei die bearbeitet werden soll)

datum : 13.11.90
Adresse : blablabla
nachname : hansen
blabla : blabla
datum : 12.12.07
Adresse : bblablala
nachname : weber
blabla : blabla

würde mich sehr freuen wenn du mir das nochma näher erklären könntest oder den dafür richtigen quell code zeigen könntest : )

digges danke nochmal gruß nebel
bastla
bastla 30.06.2008 um 17:04:20 Uhr
Goto Top
Hallo nebeleben!

... wie ich das umstellen kannd as es z.b. in zeile 6 steht oder 4 und genau das is auch mein problem
Das Ersetzen wird unabhängig davon, in welcher Zeile sich das Datum befindet, durchgeführt - was genau ist daher das Problem?

Meist ist es sinnvoll, so wie Du es ja oben gemacht hast, Quell- und Zieldatei darzustellen - wie soll also das gewünschte Ergebnis aussehen?

Grüße
bastla