2009-05-24 11 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

+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 
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より大きい値に設定します。

関連する問題