Windows批处理:如何使用动态名称分配变量?

时间:2014-04-04 08:26:54

标签: 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"将输出我想要的东西:

my_dir_1: C:\temp1
===  ===
my_dir_2: C:\temp2
===  ===

但是你可以在第二个" echo"我的新变量" new_var"是空的。 我怎样才能解决这个问题?谢谢!

1 个答案:

答案 0 :(得分:1)

替换此

echo === %new_var% ===

用这个:

echo === !new_var! ===