Batch file 将输入的文本与.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文件中的文本(不明显地看它

我希望有一个批处理文件,它可以检查.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的值(如果项目为
未找到。

它的副本不是副本,因为我在这里试图检查它是否相同