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

Zee*_*ayz 0 windows scripting batch-file

我试图创建一个基本上"模拟"变量的程序.

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

@echo off
set a=b
set b=c
:: The program should echo %b% because it is expanded with double percentages
echo %%a%%
Run Code Online (Sandbox Code Playgroud)

程序只回显"%% a %%",而不是扩展到%b%,这应该导致程序回显C.

我究竟做错了什么?

Som*_*ark 5

您可以使用call和使用一组加倍的百分号来获得值c.

call echo %%%a%%%
Run Code Online (Sandbox Code Playgroud)

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

  • 然后你做错了.https://i.imgur.com/ALbagx1.png您记得启用延迟扩展,对吗? (2认同)