olliwest
Goto Top

innerhalb eines IF-Blocks Neusetzen einer Variable

hallo zusammen,

ich habe ein Problem, und zwar funktioniert das setzten einer Variable innerhalb einer IF-Anweisung nicht nur außerhalb.

Code:

@if exist c:\test.txt (
@set /p user=<c:\test.txt
@echo %user% User angemeldet
@del c:\test.txt
exit 0 )

@if exist c:\test2.txt (
@set /p user=<c:\test2.txt
@echo %user% User angemeldet
@del c:\test2.txt
exit 0 )

ich habe es auch schon mit, @echo !user! User angemeldet,
ausprobiert, funktioniert auch nicht.

kann mir da jemand weiterhelfen, danke

gruß olli

Content-ID: 88595

Url: https://administrator.de/forum/innerhalb-eines-if-blocks-neusetzen-einer-variable-88595.html

Ausgedruckt am: 16.02.2025 um 21:02 Uhr

bastla
bastla 28.05.2008 um 10:46:21 Uhr
Goto Top
Hallo olliwest und willkommen im Forum!

... funktioniert das setzten einer Variable innerhalb einer IF-Anweisung nicht
Setzen kannst Du die Variable, aber den gesetzten Wert kannst Du innerhalb des IF nur über "delayedExpansion" auslesen - daher:
@echo off & setlocal enabledelayedexpansion
if exist c:\test.txt (
    set /p user=<c:\test.txt
    echo !user! User angemeldet
    del c:\test.txt
    exit 0
) 
Dadurch ändert sich auch die Variablenschreibweise auf !Variable!.

Als Alternative dazu könntest Du einfach den entsprechenden Teil überspringen oder ein Unterprogramm verwenden - ersteres etwa so:
@echo off & setlocal
if not exist c:\test.txt goto :NichtDa
set /p user=<c:\test.txt
echo %user% User angemeldet
del c:\test.txt
exit 0

:NichtDa
echo Die Datei "c:\test.txt" wurde nicht gefunden.  

Grüße
bastla
olliwest
olliwest 28.05.2008 um 11:14:30 Uhr
Goto Top
Hi bastla,

vielen Dank für die schnelle Antwort.
Es funktioniert wunderbar, danke.

Gruß Olli