2014-01-22 71 views
3

我有一个问题关于variable in variable(代码如下):Cmd的 - 获取变量的变量名

set a=1 
set b=a 
echo %%b%% 

预期的结果是:

1 

由于a赋给变量b1被分配给变量a

此外,还有一种情况是:

set b=a 
set a1=100 
set c=1 
call set d=%a%c%% 
echo %d% 

我希望该计划第一次打开%c%1,然后打开%a1%100
预计产量为100

完成此任务的最简单方法是什么?

回答

5
set a=1 
set b=a 
call echo %%%b%%% 

,这会工作得更快:

@echo off 
set a=1 
set b=a 
setlocal enableDelayedExpansion 
echo !%b%! 
endlocal 

而且万一你需要括号范围内做到这一点(如iffor ...):

@echo off 
set a=1 
set b=a 
setlocal enableDelayedExpansion 
(
for /f %%v in ("%b%") do echo !%%~v! 
) 
endlocal 
+0

如何将值'%%% b %%%'赋值给变量?例如'set c = %%% b %%%' – Jamie

+0

with'call set' – npocmaka

1

像对于变量x%abc%,

echo x%abc%>a.a 
set /p temp=<a.a 
call echo %%temp%%>a.a 
set /p temp=<a.a 
set temp 

就这样!