schmalspurtueftler
Goto Top

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

Content-Key: 325276

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

Printed on: April 25, 2024 at 05:04 o'clock

Mitglied: 131381
Solution 131381 Jan 02, 2017 updated at 16:57:48 (UTC)
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
Member: SchmalspurTueftler
SchmalspurTueftler Jan 02, 2017 at 16:23:35 (UTC)
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
Member: SchmalspurTueftler
SchmalspurTueftler Jan 02, 2017 at 16:30:38 (UTC)
Goto Top
CALL Set in Zeile 16 hilft, Danke!

VG Ralf