Я недавно начал пытаться сделать «логин» в bacth, используя некоторые переменные и операторы if. Что случилось, когда я запускаю этот код в CMD, и я пытаюсь войти в систему, не сделав имя пользователя или пароль, он должен привести меня к ярлыку «FAIL», но вместо этого он дает мне ошибку «Синтаксис команды неверен. " Хотя это не говорит мне, какие строки я испортил, я думаю, что он обнаружил проблему с утверждениями IF/ELSE на ярлыке «LOGIN». Взгляните на меня, посмотрите, можете ли вы понять, что я делаю неправильно.Пакет: Синтаксис команды неверен
@ECHO off
SET /P CHOICE=Do you have a username/password? Y/N
IF %CHOICE%==y (
GOTO LOGIN
)
IF %CHOICE%==Y (
GOTO LOGIN
)
IF %CHOICE%==n (
GOTO SIGNUP
)
IF %CHOICE%==N (
GOTO SIGNUP
)
:SIGNUP
CLS
ECHO Please choose your username/password below
SET /P USER1=Username:
SET /P PASS1=Password:
CLS
ECHO Your log-in credentials should be set now
SET /P CHOICE=Do you want to log-in? Y/N
IF %CHOICE%==y (
GOTO LOGIN
)
IF %CHOICE%==Y (
GOTO LOGIN
)
IF %CHOICE%==n (
GOTO END
)
IF %CHOICE%==N (
GOTO END
)
:LOGIN
CLS
ECHO Please type in your username/password below
SET /P USER2=Username:
SET /P PASS2=Password:
IF EXIST %USER1% (
IF %USER2%==%USER1% (
GOTO SUCCESS
) ELSE (
GOTO FAIL
)
) ELSE (
GOTO FAIL
)
IF EXIST %PASS1% (
IF %PASS2%==%PASS1% (
GOTO SUCCESS
) ELSE (
GOTO FAIL
)
) ELSE (
GOTO FAIL
)
:SUCCESS
CLS
ECHO You have been successfully logged in
ECHO.
ECHO Press any key to continue
PAUSE>NUL
GOTO END
:FAIL
CLS
ECHO The username/password you entered was incorrect or does not exist
ECHO.
SET /P RETRY=Try again? Y/N
IF %RETRY%==y (
GOTO LOGIN
)
IF %RETRY%==Y (
GOTO LOGIN
)
IF %RETRY%==n (
GOTO END
)
IF %RETRY%==N (
GOTO END
)
:END
CLS
ECHO Press any key to exit
PAUSE>NUL
Эта часть кода не будет проблемой, хотя, потому что ошибка синтаксиса приходит только после ввода в имени пользователя и пароля при нет имени пользователя и пароля. Все остальное работает, кроме инструкций IF/ELSE на ярлыке «LOGIN». –
Правильно, я использовал неправильную часть в качестве примера. Хотя, по-моему, ошибка все равно возникнет, если вы не внесете туда вход. Вместо этого я обновляю свой тент, чтобы использовать эту область. – Pokechu22
@LarsKloosterman Я только что обновил свой тент, чтобы быть более логичным и включить полный пересмотренный код. Попробуйте. – Pokechu22