0

我想使用批处理文件来询问密码以继续,我有非常简单的代码可以工作。

@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

我需要检测用户何时输入了无效密码,我花了一个小时研究但我一无所获。我在任何方面都没有进步,所以尽量保持它像上面的代码一样简单。

请帮我。

4

2 回答 2

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。这将重新启动序列。我稍微更改了顺序,以便屏幕也被清除并打印错误。

于 2013-11-10T03:50:29.337 回答
-1

类似于Monacraft 的 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,这将重新启动序列。

于 2019-11-09T00:03:07.990 回答