Windows批处理:如何分配具有动态名称的变量?
请参阅下面的代码片段。我想为一个新变量指定一个动态名称。我尝试了以下方法:Windows批处理:如何分配具有动态名称的变量?,windows,batch-file,Windows,Batch File,请参阅下面的代码片段。我想为一个新变量指定一个动态名称。我尝试了以下方法: @echo off setlocal enableDelayedExpansion set my_dir_1=C:\temp1 set my_dir_2=C:\temp2 for %%d in (1 2) do ( echo my_dir_%%d: !my_dir_%%d! set new_var=!my_dir_%%d! echo === %new_var% === ) endlocal
@echo off
setlocal enableDelayedExpansion
set my_dir_1=C:\temp1
set my_dir_2=C:\temp2
for %%d in (1 2) do (
echo my_dir_%%d: !my_dir_%%d!
set new_var=!my_dir_%%d!
echo === %new_var% ===
)
endlocal
第一个“echo”将输出我想要的内容:
my_dir_1: C:\temp1
=== ===
my_dir_2: C:\temp2
=== ===
但正如您在第二个“echo”中看到的,我的新变量“new_var”是空的。
我怎样才能解决这个问题?谢谢 更换这个
echo === %new_var% ===
为此:
echo === !new_var! ===