Cmd - 获取变量名中的变量 [英] Cmd - get variable in variable name

查看:42
本文介绍了Cmd - 获取变量名中的变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对 variable in variable 有疑问(代码如下):

I have a problem about variable in variable ( the code is below ) :

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

预期结果是:

1

因为 a 被分配给变量 b1 被分配给变量 a.

As a is assigned to variable b and 1 is assigned to variable a.

另外,还有一种情况:

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

我想让程序先把%c%转成1,再把%a1%转成100.
预期的输出是 100.

I want the program to first turn %c% to 1 and then turn %a1% to 100.
The expected output is 100.

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

What is the simplest way to complete this task?

推荐答案

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

这样会更快:

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

以防万一您需要在括号上下文中执行此操作(例如 iffor ...):

And just in case you need to do this within brackets context (e.g. if , for ...) :

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

这篇关于Cmd - 获取变量名中的变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆