Batch - Suche Zeile nach zwei Wörtern und kopiere den Text dazwischen in eine Variable
Hallo,
ich habe eine Configdadatei config.xml (XML/TXT) welche unter anderem folgenden Eintrag enthält
<test>blubber</test>
Ich möchte nun gerne den Text zwischen <test> </test> auslesen und in eine Variable speichern.
Danach möchte ich gerne den gespeicherten Wert an der gleichen Stelle durch einen neuen Text ersetzen.
Als Beispiel:
Aus
<test>blubber</test>
wird
<test>blabla</test>
Der Text zwischen <test> und </test> (in diesem Fall blubber) ist unbekannt und hat leider keine definierte Länge!
Alternativ wäre es auch möglich, wenn die komplette Zeile <test>blubber</test> gelöscht wird, wenn in der selben Zeile über eine Variable <test>blabla</test> hinzugefügt wird.
Ich habe mich schon durch verschiedene Seiten hier gekämpft, aber immer nur Lösungen gefunden, um einen bekannten Text durch einen neuen bekannten Text zu ersetzen.
Hier ist es aber leider so, dass ich erstmal den unbekanten Text finden muss um ihn dann durch einen bekannten Text zu ersetzen.
Eingebaut werden soll das in eine .bat unter Windows7 ohne (local)Adminrechte.
Lese- und Schreibrechte auf die Datei hat der Benutzer, auch ist bekannt, wo die Datei liegt.
Vielen Dank vorab schonmal für die Hilfe und Gruß
Tera-X
ich habe eine Configdadatei config.xml (XML/TXT) welche unter anderem folgenden Eintrag enthält
<test>blubber</test>
Ich möchte nun gerne den Text zwischen <test> </test> auslesen und in eine Variable speichern.
Danach möchte ich gerne den gespeicherten Wert an der gleichen Stelle durch einen neuen Text ersetzen.
Als Beispiel:
Aus
<test>blubber</test>
wird
<test>blabla</test>
Der Text zwischen <test> und </test> (in diesem Fall blubber) ist unbekannt und hat leider keine definierte Länge!
Alternativ wäre es auch möglich, wenn die komplette Zeile <test>blubber</test> gelöscht wird, wenn in der selben Zeile über eine Variable <test>blabla</test> hinzugefügt wird.
Ich habe mich schon durch verschiedene Seiten hier gekämpft, aber immer nur Lösungen gefunden, um einen bekannten Text durch einen neuen bekannten Text zu ersetzen.
Hier ist es aber leider so, dass ich erstmal den unbekanten Text finden muss um ihn dann durch einen bekannten Text zu ersetzen.
Eingebaut werden soll das in eine .bat unter Windows7 ohne (local)Adminrechte.
Lese- und Schreibrechte auf die Datei hat der Benutzer, auch ist bekannt, wo die Datei liegt.
Vielen Dank vorab schonmal für die Hilfe und Gruß
Tera-X
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 306550
Url: https://administrator.de/forum/batch-suche-zeile-nach-zwei-woertern-und-kopiere-den-text-dazwischen-in-eine-variable-306550.html
Ausgedruckt am: 30.04.2025 um 08:04 Uhr
2 Kommentare
Neuester Kommentar

@echo off
:: Pfad zur XML Datei
set "xmldatei=c:\config.xml"
:: Tag in dem der Text ersetzt wird , Achtung: Case-Sensitive
set "xmltag=test"
:: Neuer Text für den Inhalt
set "neuertext=Blabla"
:: Ersetzung vornehmen
powershell -Executionpolicy ByPass -Command "$xml = [xml](gc '%xmldatei%'); $xml.SelectSingleNode('//%xmltag%').innerText = '%neuertext%'; $xml.Save('%xmldatei%')"