2014-11-06 38 views
0

我從來沒有用批處理編碼,我試圖做一個非常簡單的程序,我沒有試圖創建一個程序來實際上做一些事情像批處理文件的目的是,但總體思路是創建一個非常簡單的文本探索的事情。批處理文件:If-Else statment並試圖檢查不正確的輸入

這裏是我遇到的麻煩的代碼段,

: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
... 
: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"或變量提供了一些保護(它不是防牛)

級聯測試提供了and函數;如果兩者都通過,則轉到目的地,否則產生錯誤消息;等待並允許再次嘗試。

0

你有

IF %loginInput%== smccauley goto PASSWORD 

如果你想這樣說的東西,如不正確,在下一行添加

else goto INCORRECT 

在不正確的變量,加入

echo Incorrect password. Please try again 
wait(15) 
goto CLASSIFIED 
相關問題