Batch file 无法使登录名为project工作
我无法让登录正常工作,我可以将用户名和密码存储在名为“RootData”的文件夹中,然后我可以将用户名和密码存储在.dll文件中(我想) 但这里出了问题,(我想) 完整代码:Batch file 无法使登录名为project工作,batch-file,Batch File,我无法让登录正常工作,我可以将用户名和密码存储在名为“RootData”的文件夹中,然后我可以将用户名和密码存储在.dll文件中(我想) 但这里出了问题,(我想) 完整代码: 不确定原因。)else(必须读取)else(..@TripeHound,在同一代码块中没有变量集和读取,因此不需要延迟扩展;如果您谈论的是if defined(这里是一个新的代码块),即使在同一代码块中也能工作…不要覆盖一个重要的系统变量,将其从%userName%@aschipfl更改。不,我主要是错误解析了(布局不好
不确定原因。
)else(
必须读取)else(
..@TripeHound,在同一代码块中没有变量集和读取,因此不需要延迟扩展;如果您谈论的是if defined
(这里是一个新的代码块),即使在同一代码块中也能工作…不要覆盖一个重要的系统变量,将其从%userName%
@aschipfl更改。不,我主要是错误解析了(布局不好)代码。将删除我的注释(虽然我没有意识到如果定义了,即使在同一代码块中也能工作…所以无论哪种方式我都错了!)也应该是)else(
或)else(
,而不是)else(
),您应该在命令和双引号字符串中使用区分大小写的/I
,并且正确设置命令,设置/P“usr=输入您的用户名:”
和取消定义变量,然后再通过输入提示进行设置。需要注意的是,用户可以在输入提示下不输入任何内容,因此在未完全验证其输入的情况下,不要继续您的代码。)否则(
必须读取)否则(
..@TripeHound,在同一代码块中没有变量集和读取,因此不需要延迟扩展;如果您谈论的是如果定义了(这里是一个新的代码块),即使在同一代码块中也能工作…不要覆盖一个重要的系统变量,将其从%userName%
@aschipfl更改。不,我主要是错误解析了(布局不好)代码。将删除我的注释(虽然我没有意识到如果定义了,即使在同一代码块中也能工作…所以无论哪种方式我都错了!)也应该是)else(
或)else(
,而不是)else(
),您应该在命令和双引号字符串中使用区分大小写的/I
,并且正确设置命令,设置/P“usr=输入您的用户名:”
和取消定义变量,然后再通过输入提示进行设置。需要注意的是,用户可以在输入提示下不输入任何内容,因此在未完全验证其输入之前,不要继续编写代码。
set /p userName="user name?: "
set /p userNameConfim="confirm user name: "
if "%userName%" equ "%userNameConfim%" (
echo %userNameConfim% >> RootData\ProgramData.dll
)else(
echo something went wrong kek
)
:login
:begin
set usr=
set /p usr=Enter your username:
if {%usr%}=={} goto :begin
set authenticated=
for /f "tokens=*" %%a in (RootData\ProgramData.dll) do (
if {%%a}=={%usr%} set authenticated=true)
if not defined authenticated (
echo Invalid Username & goto :begin
)