2016-11-16 10 views
0

他の変数内の変数を呼び出そうとすると問題が発生します。別の変数内のバッチ変数

echo Please Login 
set /p name=Username: 
set /p pass=Password: 
if exist users.txt del /f /q users.txt 
wget server/users.txt // downloading file from Server 
ren users.txt users.bat 
call users.bat 
del /f /q users.bat 
if %%name%% equ %pass% goto login 

だから%%名は%% iの名内の変数のthatsが必要であることを意味するので、「ユーザー」と言う: それは 私のコードは、すべてのユーザーとファイルを取得するためにサーバーに接続します。 "user"の中に変数が必要です!そして、それは私の問題は、私はそれを求める方法を知らないということです。

ファイルUSERS.TXTが含まれています

"名前は" だからのように自分のパスワード、 を "合格" の選手の名前で、
set name=pass 
set name=pass 
... 

set Blaze=1234 
set test=5678 

そして今、私のファイルを呼び出します続行する。

編集*
!%name%!私の問題を解決!助けてくれてありがとう!

+0

ダブル展開を実行しようとしていますか?もしそうなら、このように遅延拡張を使う必要があります。 'if!%name%! %%pass%goto login' – Squashman

+0

私はそれを試みました。したがって、name = Blazeの場合、 "!​​%name%!" "!Blaze!"と出力されます。 – BlazeLP

+0

BlazeLPこんにちは、サーバーからファイルをダウンロードせず、そのファイルのコマンドを調べずに実行します。 'for/f'でファイルの内容を解析する' 'のためのヘルプ 'を参照 – LotPings

答えて

0

簡潔にするために、私はあなたがする必要があることを示しています。あなたはそれが動作することがわかります。変数nameがBlazeに解決され、行が変数を実行するとBlazeは1234に解決されます。

@echo off 
setlocal enabledelayedexpansion 
set "name=Blaze" 
set "Blaze=1234" 
set "pass=1234" 
if "!%name%!"=="%pass%" echo Password Accepted 
pause 
+0

lolでもトリックをしましたxD DIdntはそれを期待しています!ありがとう! – BlazeLP