Suchen und ersetzen von einer Zeile bzw. Text
Ich bin derzeit an meiner Projektarbeit tätig und wollte zur Auswertung meiner xxBasteln.txt Datei einige Werte änder lassen und dann wieder einlesen lassen.
Hallo zusammen,
ich habe folgendes Problem:
ich habe mir eine batch Datei geschrieben, welche folgenden Namen hat: xxBasteln.bat. Folgende Befehle zum suchen und ersetzen sind in dieser Datei:
@echo off & setlocal enabledelayedexpansion
set "Datei=xxBasteln.txt"
set "Von=vx=+00"
set "Nach=vx=+20"
set "t=%temp%\text.tmp"
if exist "%t%" del "%t%"
for /f "usebackq delims=" %%i in ("%Datei%") do set "Line=%%i" & set "Line=!Line:%Von%=%Nach%!" & echo !Line!>>"%t%"
move "%t%" "%Datei%"
Das suchen und ersetzen an sich verläuft auch optimal leider interpretiert er das = von vx=+00 schon als ausführparamerter für den ersetzen Befehl.
Die xxBasteln.txt sieht so aus: vx=+00
Nach dem suchen ersetzten sollte: vx=+20 da stehen.
Allerdings steht dann: +00=vx=+20=+00
Kann mir jemand helfen oder en tipp geben wie ich diese Problem lösen kann???
Grüße
DrunkenApe (Georg)
Hallo zusammen,
ich habe folgendes Problem:
ich habe mir eine batch Datei geschrieben, welche folgenden Namen hat: xxBasteln.bat. Folgende Befehle zum suchen und ersetzen sind in dieser Datei:
@echo off & setlocal enabledelayedexpansion
set "Datei=xxBasteln.txt"
set "Von=vx=+00"
set "Nach=vx=+20"
set "t=%temp%\text.tmp"
if exist "%t%" del "%t%"
for /f "usebackq delims=" %%i in ("%Datei%") do set "Line=%%i" & set "Line=!Line:%Von%=%Nach%!" & echo !Line!>>"%t%"
move "%t%" "%Datei%"
Das suchen und ersetzen an sich verläuft auch optimal leider interpretiert er das = von vx=+00 schon als ausführparamerter für den ersetzen Befehl.
Die xxBasteln.txt sieht so aus: vx=+00
Nach dem suchen ersetzten sollte: vx=+20 da stehen.
Allerdings steht dann: +00=vx=+20=+00
Kann mir jemand helfen oder en tipp geben wie ich diese Problem lösen kann???
Grüße
DrunkenApe (Georg)
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 130999
Url: https://administrator.de/forum/suchen-und-ersetzen-von-einer-zeile-bzw-text-130999.html
Ausgedruckt am: 11.04.2025 um 05:04 Uhr
13 Kommentare
Neuester Kommentar
@it-frosch
Abgesehen davon, dass es "sed" auch für Windows gibt: Wenn DrunkenApe keine automatisierte Lösung bräuchte, würde auch ein Editor reichen ...
Grüße
bastla
Abgesehen davon, dass es "sed" auch für Windows gibt: Wenn DrunkenApe keine automatisierte Lösung bräuchte, würde auch ein Editor reichen ...
Grüße
bastla
Hallo Georg,
wenn dir meine Antwort auch nicht helfen konnte so habe ich jetzt eine Weile gesucht und nur das
http://www.wer-weiss-was.de/theme9/article799367.html
gefunden.
Schau mal ob es dir hilft.
Viel Erfolg noch.
wenn dir meine Antwort auch nicht helfen konnte so habe ich jetzt eine Weile gesucht und nur das
http://www.wer-weiss-was.de/theme9/article799367.html
gefunden.
Schau mal ob es dir hilft.
Viel Erfolg noch.
Hallo DrunkenApe,
hilft dir das in VBS eventuell weiter?
Gruss
Tsuki
hilft dir das in VBS eventuell weiter?
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Basteln = FSO.OpenTextFile("C:\basteln.txt", 1)
BastelnNeu = Basteln.ReadAll
Basteln.Close
BastelnNeu = Replace (BastelnNeu, "vx=+00" , "vx=+20")
Set Basteln = FSO.CreateTextFile("C:\basteln.txt", True)
Basteln.WriteLine (BastelnNeu)
Basteln.Close
Gruss
Tsuki
Moin DrunkenApe,
jetzt hast du schon ein, zwei Lösungen in der Hinterhand.
Also könntest du doch jetzt, weil du eigentlich deinem Prof zeigen sollst, dass du eine eigene Lösung umsetzen kannst, folgendes versuchen:
Dann hast du das Ausnahme-Problem (Sonderfall Gleichheitszeichen im der benötigten Syntax enthalten) doch umgangen.
Grüße
Biber
jetzt hast du schon ein, zwei Lösungen in der Hinterhand.
Also könntest du doch jetzt, weil du eigentlich deinem Prof zeigen sollst, dass du eine eigene Lösung umsetzen kannst, folgendes versuchen:
- und zwar nur mit Batch- und vorhandenen Befehlen (ohne SED und ohne VBS)
- aufbauend auf deinem geposteten Ansatz ganz oben
- das SUCHEN auf "vx=+00" durchzuführen
- aber das ERSETZEN dann nur noch von "+00" auf "+20" einzuschränken.
Dann hast du das Ausnahme-Problem (Sonderfall Gleichheitszeichen im der benötigten Syntax enthalten) doch umgangen.
Grüße
Biber
@bastla,
danke, aber das war mir bewusst. Mir ging es nur um einen prinzipiellen, anderen Loesungsweg.
Aber der TO hat's ja schon als geloest markiert und sich fuer die "sed" Methode entschieden.
Wenn es jemand interessiert, wie man die letzte Zeile mit dem VBS-Dinges nicht bekommt, kann er ja fragen
Einen schoenen 2ten Advent uns allen!
Tsuki
danke, aber das war mir bewusst. Mir ging es nur um einen prinzipiellen, anderen Loesungsweg.
Aber der TO hat's ja schon als geloest markiert und sich fuer die "sed" Methode entschieden.
Wenn es jemand interessiert, wie man die letzte Zeile mit dem VBS-Dinges nicht bekommt, kann er ja fragen
Einen schoenen 2ten Advent uns allen!
Tsuki