CMD - 获得变量名变量 [英] Cmd - get variable in variable name

查看:251
本文介绍了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 - 获得变量名变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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