我想使用批处理文件要求输入密码,我的代码非常简单。
@echo off
:Begin
cls
echo.
echo Enter Password
set /p pass=
if %pass%==Password goto Start
:Start
cls
echo What would you like me to do? (Date/Chrome/Lock/Shutdown/Close)
set /p task=
if %task%==Date goto Task=Date
if %task%==Chrome goto Task=Chrome
if %task%==Lock goto Task=Lock
if %task%==Shutdown goto Task=Shutdown
if %task%==Close goto Task=Close
我需要检测用户输入无效密码的时间,我花了一个小时研究,但我一无所获。我没有任何进步,所以尽量保持它像上面的代码一样简单。
请帮帮我。
答案 0 :(得分:1)
非常简单!你错过了一行代码!
@echo off
cls
:Begin
echo.
echo Enter Password
set /p pass=
if %pass%==Password goto Start
cls
Echo %pass% is not the PASSWORD
goto :Begin
:Start
cls
echo What would you like me to do? (Date/Chrome/Lock/Shutdown/Close)
set /p task=
if %task%==Date goto Task=Date
if %task%==Chrome goto Task=Chrome
if %task%==Lock goto Task=Lock
if %task%==Shutdown goto Task=Shutdown
if %task%==Close goto Task=Close
如果密码无效,代码将继续到下一行,现在是goto :Begin
。这将重新启动序列。我稍微改变了顺序,以便屏幕也被清除,并且打印出错误。
莫纳
答案 1 :(得分:-1)
类似于Monacraft's answer,但使用if-else语句:
@echo off
cls
:Begin
echo.
echo Enter Password
set /p pass=
if %pass%==Password (goto Start) else *echo Invalid password. && goto :Begin)
:Start
cls
echo What would you like me to do? (Date/Chrome/Lock/Shutdown/Close)
set /p task=
if %task%==Date goto Task=Date
if %task%==Chrome goto Task=Chrome
if %task%==Lock goto Task=Lock
if %task%==Shutdown goto Task=Shutdown
if %task%==Close goto Task=Close
它的作用是检查密码是否正确。如果输入的密码不正确,则会显示一条错误消息,并返回到:Begin
,从而重新启动序列。