批处理文件,用.txt文件中的文本检查输入的文本

时间:2009-05-24 12:15:40

标签: batch-file passwords text-files

我喜欢有一个批处理文件,用于检查.txt文件中输入的文本是否相同。

这样的事情:

@echo off
Set pass=
set /p pass=Enter your password:
......
......

.txt文件是pass.txt,它看起来像这样:

  

p2342ddd3

所以我想要它做的是,用户必须输入pass.txt文件中的文本(显然不看它),批处理文件检查它是否与传递中的文本相似。 txt文件。

2 个答案:

答案 0 :(得分:2)

如果出现以下情况,则需要组合使用for循环和简单:

@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

答案 1 :(得分:0)

您可以使用内置命令FINDSTR来匹配 密码文件中的密码:

@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是 包含在p2342ddd3中,但不应导致匹配。

选项/ M和重定向到nul是为了确保 密码不泄漏。

如果找到某个项目,FINDSTR会将变量ERRORLEVEL设置为0 (密码匹配),如果是项目,则为大于0的值 没找到。