webbudda
Goto Top

Umgebungsvaribale per batch editieren

Hallo,

ich habe folgendes problem. Ich muss per batch eine Umgebungsvariable teilweise anpassen.

Sie hat solch ein Format:
xyz=1.3.12.2.1107.5.55.6.9999

Es muss nur der Teil 55.6 mit 12.34 ersetzt werden. Der Rest muss so bleiben. Der Teil 9999 kann auch länger ausfallen, z.B. "999999". Man könnte wohl am besten von hinten aus vor dem letzten Punkt aus gucken und ab dort die Änderungen vollziehen.

Ergebnis:
xyz=1.3.12.2.1107.5.12.34.9999

Damit stoße ich leider an meine Grenzen. hat jemand eine Idee?

Content-Key: 163119

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

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

Member: Skyemugen
Skyemugen Mar 22, 2011 at 11:23:38 (UTC)
Goto Top
Aloha,

nun, wenn ich mich recht erinnere, müsste es per
set xyz=%xyz:55.6=12.34%
dann hinhauen =)

greetz André
Member: bastla
bastla Mar 22, 2011 at 11:49:25 (UTC)
Goto Top
@Skyemugen
Um auch das Restrisiko, dass zB "55" als Teilstring von "155" erkannt wird, auszuschalten:
set "xyz=%xyz:.55.6.=.12.34.%"
Da damit noch immer nicht sicher gestellt ist, dass auch an der richtigen Position ersetzt wird, könnte (den immer gleichen Aufbau aus 9 durch Punkte getrrennten Zahlen voraussetzend) die Alternative (mäßig elegant face-wink) so aussehen:
for /f "tokens=1-9 delims=." %%a in ("%xyz%") do if "%%g"=="55" if "%%h"=="6" set "xyz=%%a.%%b.%%c.%%d.%%e.%%f.12.34.%%i"
Grüße
bastla
Member: Skyemugen
Skyemugen Mar 22, 2011 at 12:10:05 (UTC)
Goto Top
Aloha bastla!

Hm, ich ging jetzt einfachmal davon aus, dass sein dargestelltes Format der Realität entspricht ;) aber indeed: sicher ist sicher.
Die FOR-Schleife hatte ich auch erst im Sinn aber irgendwie wollte mir das "xyz=%%a.%%b.%%c.%%d.%%e.%%f.12.34.%%i" nicht so recht in den Sinn kommen war mal wieder zu fixiert, wollte nur tokens=7-8 nutzen *pfeif* *gg* war halt kurz vor der Mittagspause *^__^*

greetz André