Batch file Cmd-获取变量名中的变量

Batch file Cmd-获取变量名中的变量,batch-file,cmd,command,set,Batch File,Cmd,Command,Set,我对变量中的变量有问题(代码如下): 预期结果是: 1 因为a被分配给变量b,1被分配给变量a 此外,还有另一种情况: set b=a set a1=100 set c=1 call set d=%a%c%% echo %d% 我希望程序首先将%c%转到1,然后将%a1%转到100 预期输出为100 完成这项任务最简单的方法是什么 set a=1 set b=a call echo %%%b%%% 这将更快地发挥作用: @echo off set a=1 set b=a setlocal

我对变量中的变量有问题(代码如下):

预期结果是:

1
因为
a
被分配给变量
b
1
被分配给变量
a

此外,还有另一种情况:

set b=a
set a1=100
set c=1
call set d=%a%c%%
echo %d%
我希望程序首先将
%c%
转到
1
,然后将
%a1%
转到
100

预期输出为
100

完成这项任务最简单的方法是什么

set a=1
set b=a
call echo %%%b%%%
这将更快地发挥作用:

@echo off
set a=1
set b=a
setlocal enableDelayedExpansion
echo !%b%!
endlocal
以防您需要在括号内执行此操作(例如,
if
for
…):


比如变量x%abc%

echo x%abc%>a.a
set /p temp=<a.a
call echo %%temp%%>a.a
set /p temp=<a.a
set temp
echo x%abc%>a.a
设置/p温度=a.a

set/p temp=如何将值
%%%b%%
分配给变量?e、 g.
set c=%%%b%%
再次使用
调用set
@echo off
set a=1
set b=a
setlocal enableDelayedExpansion
(
 for /f %%v in ("%b%") do echo !%%~v!
)
endlocal
echo x%abc%>a.a
set /p temp=<a.a
call echo %%temp%%>a.a
set /p temp=<a.a
set temp