批处理文件:If-Else语句并尝试检查错误输入

时间:2014-11-06 02:48:54

标签: batch-file

我以前从未使用批处理编码,而且我正在尝试制作一个非常简单的程序,我不打算创建一个程序来实际执行批处理文件的目的,但总体思路是创建一个非常简单的文本探索事物。

以下是我遇到问题的代码部分,

: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

2 个答案:

答案 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功能;如果两者都通过,则转到目的地,否则产生错误消息;等待并允许另一次尝试。