相关疑难解决方法(0)

如何两次扩展CMD shell变量(递归)

使用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)

输出.

windows shell scripting cmd batch-file

12
推荐指数
3
解决办法
1万
查看次数

标签 统计

batch-file ×1

cmd ×1

scripting ×1

shell ×1

windows ×1