gpt4 book ai didi

batch-file - 检查密码时批处理 If 语句不起作用

转载 作者:行者123 更新时间:2023-12-04 01:06:57 25 4
gpt4 key购买 nike

我和我的 friend 很无聊,所以我们决定用 BATCH 编写一些代码,我们制作了一个基本的登录脚本。基本上,当您以用户身份输入“Jack”时,它会要求输入密码,如果您输入“Pass”,它会说不正确,即使它不应该。奇怪的是,如果您输入的密码不正确,它会说正确。

这是我的代码

@echo off
color 2
:A
cls
echo Welcome, Please Log In
set /p user=Please Enter A Username:
IF "%user%"=="Jack" (
set /p pass=Please Enter A Password:
IF "%pass%"=="Pass" (
goto :B
) ELSE (
echo Password Incorrect
ping 192.0.2.2 -n 1 -w 2000 > nul
goto :A
)
) ELSE (
echo Username Incorrect
ping 192.0.2.2 -n 1 -w 2000 > nul
goto :A
)
:B
cls
echo Hello %user%
:C
set /p cmd="%user%> "
if "%cmd%"=="exit" (
goto :EXIT
) ELSE (
echo Invalid Command.
goto :C
)
:EXIT
exit

最佳答案

问题是 IF "%pass%"=="Pass"(.
这会失败,因为在解析一个完整的 block 时会发生百分比扩展,甚至在执行一行之前。

因此存在一种称为延迟扩展的模式,它会在执行的那一刻扩展。

@echo off
setlocal EnableDelayedExpansion
...
IF "%user%"=="Jack" (
set /p pass=Please Enter A Password:
IF "!pass!"=="Pass" (

关于batch-file - 检查密码时批处理 If 语句不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19797688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com