2016-11-16 88 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 

所以%%名%%意味着,我需要内部名称的变量多数民众赞成,所以说“用户”。 现在我需要“用户”里面的变量!这就是我的问题,我不知道如何打电话。

文件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

Hello 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

哈哈,即使做了这个把戏xD DIdnt期待!谢谢! – BlazeLP