使用Windows XP CMD命令行,我可以将变量扩展两次,如下所示:
set AAA=BBB
set BBB=CCC
for /F "usebackq tokens=*" %i in (`echo %%AAA%%`) do echo %i
Run Code Online (Sandbox Code Playgroud)
会回应CCC
.即AAA
已经扩大到字符串BBB
,然后变量BBB
已经扩大到CCC
.
这不适用于批处理脚本(即.cmd文件)内部.更改%%AAA%%
为任何一个%%%AAA%%%
或%%%%AAA%%%%
不起作用.
知道如何从脚本中实现这一点,即将变量AAA扩展到字符串CCC?
晚编辑
发布的答案适用于我的缩减示例,但非曲折的答案对真实案例不起作用.这是一个扩展示例(不起作用),它说明了我实际上要做的事情:
setlocal enabledelayedexpansion
set LIST=BBB CCC DDD
set BBB=111
set CCC=222
set DDD=333
for %%i in (%LIST%) do (
for /F %%a in ('echo %%%i%') do echo !%%a!
)
Run Code Online (Sandbox Code Playgroud)
我想看看
111
222
333
Run Code Online (Sandbox Code Playgroud)
输出.