用户输入文本时,批处理文件不断崩溃

时间:2019-03-31 05:54:22

标签: batch-file

我一直在尝试使此代码正常工作...

我尝试重新编写代码...也无济于事,下面的代码有点大...

: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)的内容,以检查用户输入的内容,如果用户输入正确的内容,则继续进行下一个操作。但是,如果他们输入密码或用户名错误,那么我要说“用户名/密码错误!”。但是由于某种原因,当我输入用户名时,批处理文件就关闭了!请帮忙!

1 个答案:

答案 0 :(得分:0)

if %answer% = %user% goto p1

正确的语法是使用==EQU

更好的语法是

if "%answer%" == "%user%" goto p1
  • 引号可以防止某些非法输入,并且引号中包含某些字符,例如, ;,并且建议在字符串之间进行任何比较。

请注意,if /i ...使比较不区分大小写(以备将来参考)

也-很难看到的错误

echo %answer% > username.txt

将在文件中包含跟随 answer 值的空格

> username.txt echo %answer%

将不包括这个(大概)不需要的空间。