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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
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
2 Kommentare
Neuester Kommentar
Hallo olliwest und willkommen im Forum!
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:
Grüße
bastla
... 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
)
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