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: "
我受困于 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: "