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
Please also mark the comments that contributed to the solution of the article
Content-Key: 88595
Url: https://administrator.de/contentid/88595
Printed on: April 19, 2024 at 23:04 o'clock
2 Comments
Latest comment
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