我需要使用嵌套变量来创建基于环境变量的文件夹。
假设我有以下变量:
%ABC_ASIA_LOCATION%
%ABC_EUROPE_LOCATION%
%ABC_US_LOCATION%
我希望将国家/地区作为变量传递,例如%ABC_%COUNTRY%_LOCATION%
。
如何在Windows中使用批处理脚本实现此目的?
答案 0 :(得分:1)
您必须将每个变量括在%
中:
set "ABC=ABC"
set "COUNTRY=EUROPE
set "LOCATION=MUNICH
echo %ABC%_%COUNTRY%_%LOCATION%
结果:ABC_EUROPE_MUNICH
或者,如果您只想将Country
作为变量,请保持其余部分:
echo ABC_%COUNTRY%_LOCATION
结果:ABC_EUROPE_LOCATION
或者如果你想让整个事物变成一个变量(一个包含另一个变量的变量名),你必须使用delayed expansion:
setlocal enabledelayedexpansion
set country=EUROPE
set "ABC_EUROPE_LOCATION=a town in southern Germany"
echo !ABC_%country%_LOCATION!
为您提供:a town in southern Germany
注意:setlocal
在批量文件之外没有任何影响,因此延迟扩展只能起作用:
- 在批文件中
- 启动延迟扩展时启动命令提示符(cmd /v:on
)(默认情况下,命令提示符以延迟扩展 dis 启用运行)