2016-11-16 5 views
0

У меня проблема, когда я пытаюсь вызвать переменную внутри другой переменной! Он будет подключаться к серверу, чтобы получить файл со всеми пользователями Мой код:Batch Variable in another Variable

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 

Так %% имя %% означает, что мне нужно вариабельные Thats внутри имя, так сказать, «пользователь». Теперь мне нужна переменная внутри «пользователь»! И thats моя проблема я не знаю как позвать для того.

Файл users.txt содержит:

set name=pass 
set name=pass 
... 

Где "имя" это имя игрока и "передача" его пароль, Так как:

set Blaze=1234 
set test=5678 

И теперь мой файл будет звонить чтобы продолжить.

Редактировать *
!% Name%! решил мою проблему! Спасибо за помощь ребята!

+0

Вы утверждаете, что пытаетесь сделать двойное расширение? Если это так, то вам нужно использовать задержанное расширение, подобное этому. 'if!% name%! equ% pass% goto login' – Squashman

+0

Я пробовал это. Поэтому, когда name = Blaze, тогда «!% Name%!» выводит «! Blaze!» – BlazeLP

+0

Здравствуйте, BlazeLP, я бы не загрузил файл с сервера и не выполнил его, не проверив команды в этом файле. Вы можете проанализировать содержимое файла с помощью 'for/f' См.' Помощь для' – LotPings

ответ

0

Для краткости я просто показываю, что вам нужно делать. Чтобы вы могли видеть, что это работает. Переменная имени разрешается 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