Dos Script: Ersetzen eines Teilstrings durch den Inhalt einer Variablen
-
Ich habe in einer Textdatei einen String in dieser Form:
# gibt die Position des Arbeitsbereiches an WORKSPACE=D:\%USERNAME%\workspace
dies lade ich wie folgt in mein Script
FOR /F "eol=# tokens=1* delims== " %%a IN (eclipse.config) DO ( REM TODO: Variablen ersetzen IF DEFINED DEBUG echo + Setze %%a=%%b set %%a=%%b )
Wenn ich das Ganze so nehme, will er mir einen Arbeitsbereich D:\%USERNAME%\workspace einrichten. %USERNAME% wird nicht durch dessen Inhalt ersetzt..
Ich benötige nun eine Möglichkeit, den String zu bearbeiten. Mein erster Ansatz, in Ähnlicher Form, wie
SET WORKSPACE=%WORKSPACE:<USERNAME>='echo %USERNAME%'%
und auch zahlreiche ähnliche Ansätze funktionieren nicht.
Hat jemand eine Idee, wie ich jetzt den Benutzernamen ersetzt kriege?
tHx
DjR
-
Hallo,
mein try-and-error-Ergebnis:
@echo off REM dynamische Ersetzung von Variablen aktivieren (!var!-Notation) SETLOCAL ENABLEDELAYEDEXPANSION FOR /F "eol=# tokens=1* delims== " %%a In (eclipse.conf) DO ( CALL SET tempvar=%%a ECHO Erweitert:!tempvar! ) ENDLOCAL
MfG,
Probe-Nutzer
-
die delayedexpansion fehlte mir! thx