我一直在尝试使此代码正常工作...
我尝试重新编写代码...也无济于事,下面的代码有点大...
:ST
if exist password.txt goto login
if not exist password.txt goto signup
:login
set /p user=<username.txt
set /p pass=<password.txt
set /p answer=Username:
if %answer% = %user% goto p1
if NOT %answer% = %user% goto errlog111
exit
:p1
set /p answer=Password:
if %answer%=%pass% goto
if NOT %answer% = %pass% goto errlog111
echo success
pause
exit
:signup
title Username needed for account creation! / Newex / Unregistered
set /p answer=Username:
echo %answer% > username.txt
cls
set /p answer=Password:
echo %answer% > password.txt
cls
echo Account created!
goto login
exit
:errorlog111
echo Username / Password incorrect!
pause
goto login
因此,我要检查的内容是password.txt(或username.txt)的内容,以检查用户输入的内容,如果用户输入正确的内容,则继续进行下一个操作。但是,如果他们输入密码或用户名错误,那么我要说“用户名/密码错误!”。但是由于某种原因,当我输入用户名时,批处理文件就关闭了!请帮忙!
答案 0 :(得分:0)
if %answer% = %user% goto p1
正确的语法是使用==
或EQU
。
更好的语法是
if "%answer%" == "%user%" goto p1
,
;
,并且建议在字符串之间进行任何比较。请注意,if /i ...
使比较不区分大小写(以备将来参考)
也-很难看到的错误
echo %answer% > username.txt
将在文件中包含跟随 answer 值的空格
> username.txt echo %answer%
将不包括这个(大概)不需要的空间。