我以前从未使用批处理编码,而且我正在尝试制作一个非常简单的程序,我不打算创建一个程序来实际执行批处理文件的目的,但总体思路是创建一个非常简单的文本探索事物。
以下是我遇到问题的代码部分,
:CLASSIFIED
cls
echo Please enter your credentials
echo.
:USERNAME
set /p loginInput=Login:
IF %loginInput%== smccauley goto PASSWORD
:PASSWORD
set /p passInput=Password:
IF %passInput%== password goto ACCESSGRANTED
我需要做的是,如果用户输入的内容不是完全正确的用户名和密码,IE smccauley和密码,它会说“用户名或密码不正确,请重新输入您的凭据, “像这样,
echo Incorrect username or password, please re-enter your credentials.
pause
goto CLASSIFIED
答案 0 :(得分:0)
你有
IF %loginInput%== smccauley goto PASSWORD
如果你想在下一行添加
这样的话,比如说错误else goto INCORRECT
在错误的变量中,添加
echo Incorrect password. Please try again
wait(15)
goto CLASSIFIED
答案 1 :(得分:0)
...
:USERNAME
set /p loginInput=Login:
:PASSWORD
set /p passInput=Password:
IF "%passInput%"=="password" IF "%loginInput%"=="smccauley" goto ACCESSGRANTED
echo Incorrect username or password, please re-enter your credentials.
pause
goto CLASSIFIED
由于您有不受控制的输入,因此用户可以提供任何字符串 - 该字符串可以为空或可能包含空格和其他分隔符。 "quoting the string"
或变量提供了一些保护(它不是防止bull)
级联测试提供了and
功能;如果两者都通过,则转到目的地,否则产生错误消息;等待并允许另一次尝试。