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-ID: 163119

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

Ausgedruckt am: 16.11.2024 um 07:11 Uhr

Skyemugen
Skyemugen 22.03.2011 um 12:23:38 Uhr
Goto Top
Aloha,

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

greetz André
bastla
bastla 22.03.2011 um 12:49:25 Uhr
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
Skyemugen
Skyemugen 22.03.2011 um 13:10:05 Uhr
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é