Batch file 将输入的文本与.txt文件中的文本进行检查的批处理文件
我希望有一个批处理文件,它可以检查.txt文件中输入的文本是否相同 大概是这样的:Batch file 将输入的文本与.txt文件中的文本进行检查的批处理文件,batch-file,passwords,text-files,Batch File,Passwords,Text Files,我希望有一个批处理文件,它可以检查.txt文件中输入的文本是否相同 大概是这样的: @echo off Set pass= set /p pass=Enter your password: ...... ...... .txt文件是pass.txt,它应该如下所示: @echo off Set pass= set /p pass=Enter your password: ...... ...... P2342DD3 因此,我想让它做的是,用户必须输入pass.txt文件中的文本(不明显地看它
@echo off
Set pass=
set /p pass=Enter your password:
......
......
.txt文件是pass.txt,它应该如下所示:
@echo off
Set pass=
set /p pass=Enter your password:
......
......
P2342DD3
因此,我想让它做的是,用户必须输入pass.txt文件中的文本(不明显地看它),批处理文件检查它是否与pass.txt文件中的文本相似。这将需要一个for循环和simple组合,如果:
@echo off
:begin
set pass=
set /p pass=Enter your password:
if {%pass%}=={} goto :begin
set authenticated=
for /f "tokens=*" %%a in (pass.txt) do (
if {%%a}=={%pass%} set authenticated=true
)
if not defined authenticated (echo Invalid password & goto :begin)
exit /b 0
您可以使用内置命令来匹配 密码文件中的密码:
@echo off
set pass=
set /p pass=Enter your password:
findstr /B /E /M %pass% pass.txt > nul
If %ERRORLEVEL% EQU 0 echo Password matched!
选项/B和/E用于确保整个密码
已匹配,但未发生部分匹配。例42是
包含在P2342DD3中,但不应导致匹配
选项/M和重定向到nul是为了确保
密码不会泄露出去
如果找到项,FINDSTR将变量ERRORLEVEL设置为0
(密码匹配)并设置为大于0的值(如果项目为
未找到。它的副本不是副本,因为我在这里试图检查它是否相同