2016-10-12 10 views
-1

私は変数バッチ - 比較変数

を比較する方法を知りたい

マイコード:私はそれがPASSWORD.TXTファイルを読み込む作成し、パスワードを入力したユーザーと比較しようとしています

:pass 
set /p pass= "Password: " 
set read = type Users\%user%\Password\password.txt 
if pass = read goto continue 
if not pass = read goto passwrong 

inログインシステムのために。パスワードが正しい場合(password.txtと一致)、続行スクリプトに進みます(実際のプログラムを実行します)。そうでない場合は、パスワードが間違ったエラーになります。

答えて

1

パスワードが最初の空行でない場合は、 PASSWORD.TXT:

set /p "pass=Password: " 
set /p read=<"%USERPROFILE%\Desktop\PROGRAM NAME\Users\test\Password\password.txt" 
if "%pass%"=="%read%" (goto :continue) else (goto :passwrong) 

とパスワードは、あなたのPASSWORD.TXTファイルの最後の非空行がある場合、これは:

set /p "pass=Password: " 
for /f usebackdelims^=^ eol^= %%i in (
     "%USERPROFILE%\Desktop\PROGRAM NAME\Users\test\Password\password.txt" 
) do set "read=%%i" 
if "%pass%"=="%read%" (goto :continue) else (goto :passwrong) 
+0

それは動作しません。私は 'type'が変数にあるのが好きだとは思わない。私は 'C:\ Users \%username%\ Desktop \ PROGRAM NAME \ Users \ test \ Password \ password.txt'とタイプしようとしましたが、まったく同じことをやろうとしましたが、動作しませんでした。 – houseofkraft

+0

私は変数に型を入れていません、私はちょうどあなたの下の4行を3つに置き換えました。私の2行目は、password.txtファイルの最初の行、_を読み込みます(これに応じて、新しいパスを更新します)。 – Compo

+0

問題を修正しました。あなたのは非常に良い解決策でしたが、私は引用符を削除したので引用符が問題だと思うし、正しいパスワードを入力したときに機能しました。 – houseofkraft