rabe62
Goto Top

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
<v:imagedata src=" (irgendetwo)/resources/image/(irgendetwas)"/>  
wird dann
<v:imagedata src="../image/(irgendetwas)"/>  
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

Grüsse von der Waterkant
Ralf...

Content-Key: 57966

Url: https://administrator.de/contentid/57966

Printed on: April 20, 2024 at 03:04 o'clock

Member: paulepank
paulepank May 01, 2007 at 16:28:48 (UTC)
Goto Top
Hallo Ralf,

das Problemchen brüllt ja geradezu nach SED


cu paulepank
Member: miniversum
miniversum May 01, 2007 at 16:41:37 (UTC)
Goto Top
Wenns nur drum geht aus der absoluten Angabe ne relative zu machen gehts auch per Batch:
@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%
)

miniversum
Member: RaBe62
RaBe62 May 02, 2007 at 10:37:17 (UTC)
Goto Top
Hallo Paulepank,

gut gebrüllt Löwe face-smile

Genau deshalb liebe ich das Internet:
Zwei Tage nach einer Lösung gesucht - ins Forum gepostet und nicht mal 1 Stunde später eine passende Antwort - vielen Dank.

Gruß
Ralf...
Member: RaBe62
RaBe62 May 02, 2007 at 10:39:07 (UTC)
Goto Top
Danke miniversum,

aber
1. verstehe ich die Lösung nicht wirklich
2. scheint SED passender zu sein, weil ich ähnliche Aufgabenstellungen in dem Projekt erwarte, die damit ebenfalls zu lösen sind.

Gruß
Ralf...
Member: paulepank
paulepank May 02, 2007 at 10:44:58 (UTC)
Goto Top
Hallo Ralf,

bitte dann noch den Thread als gelöst markieren
Member: miniversum
miniversum May 02, 2007 at 11:00:25 (UTC)
Goto Top
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
Member: Biber
Biber May 02, 2007 at 17:07:25 (UTC)
Goto Top
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
Member: Biber
Biber Jun 16, 2007 at 22:33:28 (UTC)
Goto Top
Moin ReBe62,

hast Du schön eine Lösung erarbeitet, die Du posten magst?
Oder können wir unterstützen?

Grüße
Biber