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