2

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

像这样的东西:

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

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

p2342ddd3

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

4

2 回答 2

2

这将需要一个 for 循环和简单 if 的组合:

@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
于 2009-05-27T04:12:23.290 回答
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 的值。

于 2009-08-22T00:17:06.627 回答