in Cmd Text ersetzen?

2 Antworten

Also String-replace geht in Batch folgendermaßen: (Hier wird der String "ist" durch "war" ersetzt.)

set "text=das ist ein Beispieltext"
set "neuerText=%text:ist=war%"

echo/"%text%" wird zu "%neuerText%"

__________________________

[...] ich habe eine Textdatei/Variable [...]

Hast du nun eine Textdatei oder eine Variable?

Ich geh zunächst mal davon aus, dass du dich nur mit der ersten Zeile der Textdatei beschäftigst, die ganz einfach in eine Variable eingelesen werden kann. (die Datei "test.txt" mit dem Inhalt "Ich mag gf" muss im gleichen Ordner liegen)

@echo off
set "file=test.txt"

::einlesen:
set /P var=<"%file%"
echo/%var%

::ersetzten:
set "var=%var:mag g=liebe rudol%"

::ausgeben:
echo/%var%
echo/%var%>%file%

pause&exit

_____________________

Und hier etwas für die gesamte Textdatei:

@echo off & setlocal enableDelayedExpansion

set "search=beispiel"
set "replace=censored"

set "oldfile=file.txt"
set "newfile=new.txt"

if exist %newfile% (
    CHOICE /M "%newfile% existiert bereits. Ueberschreiben?"
    if !errorlevel! EQU 1 ( del %newfile% ) else ( exit )
)

for /f "delims=" %%i in (%oldfile%) do (
    set "line=%%i"
    echo !line:%search%=%replace%!
)>> %newfile%

___________________

das ganze mit mehr Userinput; die Datei, die bearbeitet werden soll einfach auf die Batch ziehen:

@echo off & setlocal enableDelayedExpansion

if "%~1"=="" (
    echo/ Starten Sie diese Batch indem Sie eine Textdatei darauf ziehen
    echo/ oder geben Sie jetzt selbst einen Dateinamen bzw. Pfad ein.
    set /P "file= > "&cls&%0 "!file!"&exit
) else (
    echo/ Datei: "%~1"
    echo/
)

set /P  "search=suchen nach  : "
set /P "replace=ersetzten mit: "

CHOICE /M "Moechten Sie '%~f1' behalten?"
if !errorlevel! EQU 1 copy "%~f1" "%~dpn1[version-%date:.=-%-%time:~0,2%-%time:~3,2%-%time:~6,2%]%~x1">nul ||(echo/Beim Backup ist ein fehler aufgetreten. Programm wird beendet.&timeout/t 3&exit)

set tmpfile="%TEMP%\replace.cmd[%~nx1].tmp"
if exist %tmpfile% del %tmpfile%

for /f "delims=" %%i in (%~f1) do (
    set "line=%%i"
    echo !line:%search%=%replace%!
)>> %tmpfile%

del "%~f1"
copy %tmpfile% "%~f1"
del  %tmpfile%

~Tim

Woher ich das weiß:eigene Erfahrung

Hallo!

Textdateien kann man mit einem beliebigen Texteditor verändern.

CMD.EXE ist doch eine Kommandozeilen-Umgebung, die dem alte DOS-Befehlszeile nachempfunden wurde.

Damit kann man z.B. Batch-Dateien (.bat) schreiben, die diese Kommandos wie ein Script ausführen.

Auch diese .bat-Dateien kann man mit einem Texteditor öffnen und bearbeiten.

Ich empfehle dazu Notepad++:

https://www.heise.de/download/product/notepad-26659

https://www.youtube.com/results?search_query=notepad%2B%2B+tutorial+deutsch

Das Programm ist wesentlich funktionsreicher und kompfortabler als, z.B. der Windows eigene Texteditor Notepad. Ok, nahezu alles ist besser als Notepad...

Und dann kann man die kompfortable "Suchen & Ersetzen"-Funktion nutzen. Oder komplett manuell vorgehen.

Gruss,

Martin


timlg07  13.08.2018, 18:14

Ich glaube er will eine Batch-Datei haben, die das ganze Ersetzten automatisiert ausführt. Notepad++ ist aber trotzdem empfehlenswert, auch wenn ich eigentlich nur den Standard Editor/notepad.exe benutze.

MartinusDerNerd  13.08.2018, 18:37
@timlg07

Versuch mal dieses Tool:

https://www.chip.de/downloads/Notepad-Replacer_69585319.html

Und um eine Batch-Datei zu erstellen würde ich auch einen Texteditor, wie Notepad++, einsetzen.

Aber auch ein Dateien übergreifendes Suchen und Ersetzen ist mit Notepad++ möglich:

https://www.tutonaut.de/tipp-suchen-ersetzen-ueber-ganze-ordner-nutzen/

Weitere geeignete Tools wären:

https://www.chip.de/downloads/GrepWin-32-Bit_48247967.html

http://matthiasschuetz.com/textcrawler-suchen-ersetzen-in-mehreren-dateien

https://www.heise.de/download/product/inforapid-suchen-ersetzen-3096

Wenn es aber unbedingt per Batch-Datei gehen soll:

https://www.google.com/search?q=suchen%20ersetzen%20per%20batch

Gruss,

Martin

MartinusDerNerd  13.08.2018, 19:16
@timlg07

Ich nutze dort ausschließlich die "manuelle Installation".

Damit wird dieser lästige Chip-Downloader umgangen.

Das Teil ist nützlich, wie ein Kropf!

Leider habe ich keinen alternativen Link zu diesem Tool gefunden.

timlg07  13.08.2018, 19:31
@MartinusDerNerd

Ah ok. Ich dachte beim durchlesen der Links schon hier mag jemand ernsthaft die downloads von chip :D

MartinusDerNerd  13.08.2018, 19:42
@timlg07

Seiten, die ausschließlich solche Downloader nutzen vermeide ich vollständig.

Und auch bei vertrauenswürdigen Download-Seiten bin ich immer vorsichtig.

Zudem habe ich mein System mit mehreren Schutzschichten abgeschirmt und bin sehr aufmerksam, wenn irgend ein Programm eine Verbindung ins Internet aufmacht.

Ich nutze dazu u.a. die kostenfreie Basis-Version des Netzwerk-Monitors, bzw. Firewall-Frontend "Glasswire".

https://www.heise.de/security/meldung/GlassWire-Netzwerkmonitor-und-Firewall-in-schoen-2302707.html