在Windows CMD中扩展var中的var

时间:2012-12-21 06:18:31

标签: cmd

我在变量中看起来像%SystemRoot%\blahblahblah(例如,variable a)。 但echo !a!将返回%SystemRoot%\blahblahblah(不展开%SystemRoot%)。我该如何扩展它?

1 个答案:

答案 0 :(得分:2)

你可以使用调用子程序的技巧,使子变量扩展两次:

@Echo Off
set a=%%SystemRoot%%\blahblahblah
call :reparse set b=%a%

echo value of a: %a%
echo value of b: %b%

goto :EOF

:reparse
%*
goto :EOF

:reparse子程序只执行其所有参数。第一次扩展在执行调用时发生,第二次在%*被解释为set b=%SystemRoot%\blahblahblah时发生。