本文介绍了CMD - 获得变量名变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个问题可变变量
(在code是如下图):
设置= 1
集B = A
回声%% b %%
预期的结果是:
1
由于 A
赋给变量 B
和 1
赋给变量 A
。
另外,还有一种情况:
集B = A
设置A1 = 100
集合C = 1
呼叫建立D =%A%C %%
回声%D%
我希望该计划第一回合%C%
到 1
,然后打开 %Al%
到 100
。结果
预期的输出是 100
。
什么是完成此任务的最简单的方法?
解决方案
设置= 1
集B = A
调用回声%%% b %%%
,这将加快工作速度:
关闭@echo
设置= 1
集B = A
SETLOCAL enableDelayedExpansion
回音!%B%!
ENDLOCAL
和万一你需要括号范围内做到这一点(如如果
,为
...)
关闭@echo
设置= 1
集B = A
SETLOCAL enableDelayedExpansion
(
在(%B%)/ F %% v请勿呼应!%%〜Ⅴ类!
)
ENDLOCAL
I have a problem about variable in variable
( the code is below ) :
set a=1
set b=a
echo %%b%%
The expected result is :
1
As a
is assigned to variable b
and 1
is assigned to variable a
.
Also, there is another situation :
set b=a
set a1=100
set c=1
call set d=%a%c%%
echo %d%
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%%%
And this will work faster:
@echo off
set a=1
set b=a
setlocal enableDelayedExpansion
echo !%b%!
endlocal
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 - 获得变量名变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!