将一个变量设置为另一个变量的内容

时间:2018-12-07 05:38:33

标签: windows batch-file scripting

我正在尝试创建一个实质上将“模拟”变量的程序。

我尝试使用以下代码测试此问题:

@echo off
set a=b
set b=c
:: The program should echo %b% because it is expanded with double percentages
echo %%a%%

程序仅回显“ %% a %%”,而不扩展为%b%,这应导致程序回显C。

我在做什么错了?

2 个答案:

答案 0 :(得分:5)

您可以使用call并使用双倍百分号来获得c的值。

call echo %%%a%%%

或者,您可以将setlocal enabledelayedexpansion放在脚本顶部并使用echo !%a%!

答案 1 :(得分:-2)

根据答案 Batch character escaping

似乎正式定义很模糊:

  

不一定总是要求[要转义]用双引号引起来的字符串,   尝试

因此,请尝试不转义:

 echo %a%