需要一些关于我的代码的帮助,当它运行时,它会很快给出错误消息,然后关闭。错误是“Unexpected SetPassword1”。当您看到代码时,您将了解SetPassword1是什么。
:SetPassword
cls
echo This is where you can set your password or change it.
if EXIST pass.txt (
for /f "Delibs=" %%a in (pass.txt) do (
set OldPass=%%a
set /p OldPassCheck=What was your old password:
if %OldPassCheck%==%OldPass% goto SetPassword1
echo That's not your old password.
pause
goto MainLogin
)
)
echo.
pause
goto SetPassword1
如果我的代码太愚蠢而无法理解,这基本上就是我想要的; 如果已有密码则设置新密码,如果没有密码则设置新密码。 所以我希望它检查pass.txt(包含密码)是否存在,如果存在,则从中获取密码。然后它被设置为OldPass。然后它询问用户旧密码是什么,如果它是正确的,那么它将转到SetPassword1(您将设置新密码),如果不是,它将返回主菜单。当然,如果pass.txt不存在,它将不会执行If中的命令并直接转到SetPassword1。
希望这不是太混乱!任何帮助将不胜感激! :)
PS。我知道将密码存储在一个简单的文本文档中是不安全的,但这只是一个测试应用程序,而不是实际上可以保护任何内容的东西。
PS2。 SetPassword1标签确实存在,我只是没有在这里包含它。抱歉! :P
答案 0 :(得分:1)
您的 goto
找不到标签Setpassword1
。将goto
更改为SetPassword
或更改您的第一个标签以匹配标识符:SetPassword1
,或稍后在代码中创建适当的标签。
修改强>
您需要启用延迟扩展才能在oldpass
代码中适当更新FOR
变量。
setlocal enabledelayedexpansion
....
if !OldPassCheck!==!OldPass! goto SetPassword1