Batch um Text in XML-Dateien mit Regulären Ausdrücken auszutauschen
Wie kann ich reguläre Ausdrücke auf der WinXP-Commandozeile anwenden?
Auf unterschiedlichen Maschinen werden XML-Dateien erstellt. Dort sind Pfade zu Grafiken enthalten. Werden diese XML-Dateien auf einem Server abgelegt, so müssen die Pfade zu den Grafiken angepasst werden.
Aus
wird dann
Eine typische Anwendung von regulären Ausdrücken.
Kennt jemand eine EXE, die mir die Anwendung von regulären Ausdrücken in mehreren Textdateien im Windows-Batchbetrieb ermöglicht? Auf Cygwin oder ähnliches würde ich gern verzichten![face-smile face-smile](/images/icons/fa/light/face-smile.svg)
Grüsse von der Waterkant
Ralf...
Auf unterschiedlichen Maschinen werden XML-Dateien erstellt. Dort sind Pfade zu Grafiken enthalten. Werden diese XML-Dateien auf einem Server abgelegt, so müssen die Pfade zu den Grafiken angepasst werden.
Aus
<v:imagedata src=" (irgendetwo)/resources/image/(irgendetwas)"/>
<v:imagedata src="../image/(irgendetwas)"/>
Kennt jemand eine EXE, die mir die Anwendung von regulären Ausdrücken in mehreren Textdateien im Windows-Batchbetrieb ermöglicht? Auf Cygwin oder ähnliches würde ich gern verzichten
Grüsse von der Waterkant
Ralf...
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 57966
Url: https://administrator.de/forum/batch-um-text-in-xml-dateien-mit-regulaeren-ausdruecken-auszutauschen-57966.html
Ausgedruckt am: 16.02.2025 um 22:02 Uhr
8 Kommentare
Neuester Kommentar
Wenns nur drum geht aus der absoluten Angabe ne relative zu machen gehts auch per Batch:
miniversum
@echo off & setlocal enabledelayedexpansion
set "rootpath=(irgendetwo)/resources/"
set absfile="abs.xml"
set relfile="rel.xml"
for /F "delims=" %%A in ('type %absfile%') do (
set "zeile=%%A"
echo !zeile:rootpath=../!>>%relfile%
)
set "rootpath=(irgendetwo)/resources/"
set absfile="abs.xml"
set relfile="rel.xml"
for /F "delims=" %%A in ('type %absfile%') do (
set "zeile=%%A"
echo !zeile:rootpath=../!>>%relfile%
)
miniversum
Das ist eben eine Lösung nur mit Bordmitteln...
In diesem Code wird die Datei "abs.xml" duchgegangen und in jeder Zeile die Zeilchenkette "(irgendetwo)/resources/" duch "../" ersetzt und als neue Datei "rel.xml" gespeichert.
Wäre im Prinzip das was man mit einem Editor mit suchen udn ersetzen machen kann.
miniversum
In diesem Code wird die Datei "abs.xml" duchgegangen und in jeder Zeile die Zeilchenkette "(irgendetwo)/resources/" duch "../" ersetzt und als neue Datei "rel.xml" gespeichert.
Wäre im Prinzip das was man mit einem Editor mit suchen udn ersetzen machen kann.
miniversum
Moin Rebe62,
stimme in diesem Fall mit paulepank überein, dass native batch hier nicht das sinnvolle Werkzeug wäre und SED (oder PERL oder irgendetwas, dass mit Streams und RegExpressions umgehen kann) geeigneter wäre.
Wäre nett, wenn Du nach ausgetüftelter Lösung das Forum daran teilhaben ließest und einen kurzen SED-Schnipsel mit Vorher/Nachher hier postest.
Danke
Biber
stimme in diesem Fall mit paulepank überein, dass native batch hier nicht das sinnvolle Werkzeug wäre und SED (oder PERL oder irgendetwas, dass mit Streams und RegExpressions umgehen kann) geeigneter wäre.
Wäre nett, wenn Du nach ausgetüftelter Lösung das Forum daran teilhaben ließest und einen kurzen SED-Schnipsel mit Vorher/Nachher hier postest.
Danke
Biber