in Cmd Text ersetzen?
Hey da draußen!
Hier mein Problem: ich habe eine Textdatei/Variable in der zB "Ich mag gf" steht
Nur will ich einzelne Zeichen durch andere ersetzten, zb "mag g" durch "liebe rudol", dass am ende zb "Ich mag rudolf" steht!
Danke im vorraus
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
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
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
Ich lasse mir doch nicht von chip mein notepad wegnehmen -.-
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.
Ah ok. Ich dachte beim durchlesen der Links schon hier mag jemand ernsthaft die downloads von chip :D
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
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.