Windows批量密码保护?

Windows batch password protection?

我受困于 Windows 命令提示符密码保护的批处理文件。两种方式都无法正常工作。如果不显示语法错误,即使输入正确的密码也无法通过。这是代码:

@echo off
echo Computer password protected.
echo.

:PSW
set /p "PASS" = "Enter password: "
IF "%PASS%"=="kerberos" (
    echo Welcome.
    echo.
    goto EOF
) ELSE (
    echo Wrong password! Try again.
    echo.
    goto PSW
)

:EOF

我保留了密码,因为它只是一个测试,看看它是否正常工作以及它实际如何工作。

不要在 set 命令中输入 " 或 space。

例如

C:\Users\marc>set /p "pass" = "prompt: "
prompt: argle

C:\Users\marc>set /P "pass2"= "prompt: "
prompt: bargle

C:\Users\marc>set
[..snip..]
pass" =argle
pass2"=bargle

注意 " 和 space 是如何成为环境变量的一部分的。

改为这样做:

C:\Users\marc>set /p pass3="prompt: "
                     ^^^^^^^---note: no quotes, no space
prompt: kittens

C:\Users\mbb190>echo %pass3%
kittens

set /p 语法错误。您需要使用:

set /p PASS="Enter password: "