Frage von M4rcGam3r, 64

Batch funktioniert nicht?

Die ":error" funktioniert bei mir irgendwie nicht, wenn man da reinkommt struerzt es ab. Kann mir jemand helfen? (Falls ihr noch andere Fehler findet oder vorschlaege wie ich es verbessern kann informiert mich auch.) Hier ist der Text:

@echo off

title Start

color a

:login

cls

echo Benutzername

set /p username=

goto login%username%

goto error

:error

cls

echo Account %username% not found. Retry.

pause >nul

goto login

:errorp

cls

echo Das Passwort stimmt nicht, versuche es nochmal!

pause

goto login

:loginM4rc

cls

echo Willkommen M4rc, bitte dein Passwort eingeben.

set /p password=

if %password%== 2512 goto startadmin

goto errorp

:startadmin

cls

echo Willkommen im Hauptmenue %username%.

echo Was willst du machen (logout / exit / passwort wechseln [password])

set /p auswahl=

if %auswahl%== logout goto logout

if %auswahl%== exit goto exit

if %auswahl%== password goto password

:password

cls

echo Willst du wirklich dein Passwort wechseln (j / n)?

set /p input=if %input%== j goto passwordj

if %input%== n goto login

:passwordj

echo Altes Passwort eingeben!

set /p oldpassword=

if %oldpassword%== %password% 

goto passwordj2

goto errorp

:passwordj2

echo Neues Passwort eingeben:

set /p newpassword=

goto startadmin

:logout

goto login

Antwort
von PWolff, 16

Folgende Zeilen müssen in eine einzige Zeile (oder du muss Klammern setzen):

if %oldpassword%== %password% 

goto passwordj2

Vorschläge:

statt

echo Was willst du machen (logout / exit / passwort wechseln [password])

besser

choice /c LEP /n /m "Was willst du machen [l]ogout / [e]xit / [p]asswort wechseln"

dann ist %ERRORLEVEL% = 1 für "L", 2 für "E" und 3 für "P"

if-Abfragen in Batch-Dateien sind immer eine heikle Sache - probier mal folgendes falsche Passwort:

1==1 goto startadmin & rem
Kommentar von M4rcGam3r ,

Wie macht man das letzte genau? Und das mit dem errorlevel beim logout funktioniert auch nicht.

Kommentar von M4rcGam3r ,

Hab herausgefunden wieso "logout" nicht funktioniert hat, ignorier die 2. Frage einfach.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten