2009-05-24 35 views
2

我想要一个批处理文件来检查.txt文件中输入的文本是否相同。使用.txt文件中的文本检查输入文本的批处理文件

事情是这样的:

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

.txt文件是pass.txt,它应该是这个样子:

p2342ddd3

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

+0

重复的http://stackoverflow.com/questions/206114/dos-batch-files-how-to-read-a-file – RedFilter 2009-05-24 12:21:36

回答

2

这将需要一个组合的循环和简单,如果:

@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 
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的值。

相关问题