我遇到关于variable in variable
的问题(代码如下):
set a=1
set b=a
echo %%b%%
预期结果是:
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
。
完成此任务的最简单方法是什么?
答案 0 :(得分:5)
set a=1
set b=a
call echo %%%b%%%
这会更快地运作:
@echo off
set a=1
set b=a
setlocal enableDelayedExpansion
echo !%b%!
endlocal
如果您需要在括号上下文中执行此操作(例如if
,for
...):
@echo off
set a=1
set b=a
setlocal enableDelayedExpansion
(
for /f %%v in ("%b%") do echo !%%~v!
)
endlocal
答案 1 :(得分: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
这就是全部!