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-Key: 311753

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

Printed on: April 23, 2024 at 14:04 o'clock

Mitglied: 129813
Solution 129813 Aug 04, 2016 updated at 19:45:42 (UTC)
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
Member: rubberman
Solution rubberman Aug 04, 2016 updated at 21:17:25 (UTC)
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.
Member: donnyS73lb
donnyS73lb Aug 05, 2016 at 12:48:33 (UTC)
Goto Top
Prima. Funktioniert. Ich nehme jetzt [ und ]

Danke Euch.

Gruß und ein schönes WE!

Donny