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ループと単純な組み合わせが必要になります。

@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 に答える