donnys73lb
Goto Top

Substring in einer Textvariablen ersetzen

Hallo,

meine *.bat liest aus einer Textdatei die Textzeilen aus und befüllt damit Batch-Variablen.

Nun möchte ich in der Textdatei nicht nur fixe, absolute Strings hinterlegen.
Teile dieser Strings sollen nachher durch andere Batch-Variablen ersetzt werden.

In der Textdatei steht bspw.

strWert01=<Name> ist müde.

Nach dem Einlesen habe ich in der Batch die Variable strWert01 inkl. dem Wert "<Name> ist müde."
Passt. Funktioniert.

Nun möchte ich nach dem Einlesen in die Batch den Substring <Name> ersetzen durch eine andere vorhandene Batch-Variable, nämlich strName:

Ich nehme an, das Ersetzen des Teilstrings geht so ähnlich ... aber es will nicht:

set strWert01=%%strWert01:<Name>=%strName%%%

Was mache ich falsch?

Sind die <> das Problem?

Grüße

Donny

Content-ID: 311753

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

Ausgedruckt am: 22.11.2024 um 08:11 Uhr

129813
Lösung 129813 04.08.2016 aktualisiert um 21:45:42 Uhr
Goto Top
Hi,
use delayedexpansion or call set
@echo off & setlocal enabledelayedexpansion
set "strWert01=<Name> ist muede"  
set "strName=Henry"  
set "strWert01=!strWert01:<Name>=%strName%!"  
echo %strWert01%

For the call set variant see my comment in this thread
Variable über Wert aussuchen

Regards
rubberman
Lösung rubberman 04.08.2016 aktualisiert um 23:17:25 Uhr
Goto Top
You don't even need to escape < and > as long as you enclose the assignments into quotation marks.

Regards
rubberman

Donny
Wenn du die Wahl hast, such dir was anderes aus, als < und >. [ und ] wären bspw. sicherer bei der Verarbeitung mit Batch.

Grüße
rubberman

/EDIT
highload hat seinen Kommentar geändert. Ursprünglich hatte er die Zeichen mit einem Caret maskiert (^< und ^>), was du dann benötigen würdest, wenn eine Zeichenfolge mit diesen Zeichen nicht in Anführungszeichen gesetzt wird.
donnyS73lb
donnyS73lb 05.08.2016 um 14:48:33 Uhr
Goto Top
Prima. Funktioniert. Ich nehme jetzt [ und ]

Danke Euch.

Gruß und ein schönes WE!

Donny