schmalspurtueftler

Umgebungsvariablen im Batch auflösen

Hallo zusammen,

habe eine Textdatei in der zeilenweise temporäre Verzeichnispfade stehen.
Die werden dann durch das Script eingelesen und der Verzeichnisinhalt gelöscht. Läuft soweit!

Problem:
Wenn es ein Pfad wie %temp% ist wird der auch brav eingelesen, aber als normaler Text behandelt und nicht aufgelöst.
Gibt es da ne Möglichkeit um z.B. aus eingelesenem Text %TEMP% wieder den benutzerspezifischen Tempordner zu bekommen?

Bin auch für andere Denkanstöße dankbar. face-smile

Danke schon mal!

VG Ralf
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 325276

Url: https://administrator.de/forum/umgebungsvariablen-im-batch-aufloesen-325276.html

Ausgedruckt am: 05.05.2025 um 23:05 Uhr

131381
Lösung 131381 02.01.2017 aktualisiert um 17:57:48 Uhr
Goto Top
Mit call set den Text nachträglich auflösen lassen.

Beachte: Das aber die %username% Variable immer zum selben Namen des aktuellen Users der das Skript ausführt auflöst, sollte aber klar sein face-wink

Gruß mik
SchmalspurTueftler
SchmalspurTueftler 02.01.2017 um 17:23:35 Uhr
Goto Top
Habe ich auch schon probiert, hier mal der aktuelle Stand:
@echo off & Setlocal EnableDelayedExpansion
Set "Suchstr=#Ziel"  
Set "SuchStr=%Suchstr%verzeichnis#"  
Set "buf=leer"  

goto :skipSomeLines
----ab hier können alle Dienste nach dem skizzierten Muster eingetragen werden...
#Zielverzeichnis#~alles~C:\Users\Klaus\AppData\Local\Temp
#Zielverzeichnis#~alles~%TEMP%
----bis hier können alle Dienste nach dem skizzierten Muster eingetragen werden...
:SkipSomeLines


for /f "tokens=2,3 delims=~" %%i in ('findstr /i /C:"%SuchStr%" %0') do (  

set buf=%%j
if /i "!buf:~0,1!" equ "%%" (  

REM mal testweise in File schreiben, hilft aber auch nicht
echo !buf! > temp.dat
Set /p buf= < temp.dat
echo !buf! REM immer noch %TEMP%

) ELSE (
echo keine UV: !buf:~0,1!
) 


)

pause
del /q temp.dat
exit

VG Ralf
SchmalspurTueftler
SchmalspurTueftler 02.01.2017 um 17:30:38 Uhr
Goto Top
CALL Set in Zeile 16 hilft, Danke!

VG Ralf