我喜欢有一个批处理文件来检查 .txt 文件中输入的文本是否相同。
像这样的东西:
@echo off
Set pass=
set /p pass=Enter your password:
......
......
.txt 文件是 pass.txt,它应该看起来像这样:
p2342ddd3
所以我想要它做的是,用户必须输入 pass.txt 文件中的文本(显然不看它),并且批处理文件检查它是否与 pass.txt 文件中的文本相似。
我喜欢有一个批处理文件来检查 .txt 文件中输入的文本是否相同。
像这样的东西:
@echo off
Set pass=
set /p pass=Enter your password:
......
......
.txt 文件是 pass.txt,它应该看起来像这样:
p2342ddd3
所以我想要它做的是,用户必须输入 pass.txt 文件中的文本(显然不看它),并且批处理文件检查它是否与 pass.txt 文件中的文本相似。
这将需要一个 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
您可以使用内置命令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 的值。