我在变量中看起来像%SystemRoot%\blahblahblah
(例如,variable a
)。
但echo !a!
将返回%SystemRoot%\blahblahblah
(不展开%SystemRoot%
)。我该如何扩展它?
答案 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
时发生。