2009-05-24 34 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的值。

相關問題