我刚刚发现如果您执行以下操作:
set Variable=Test & echo %Variable% --Outputs "%Variable%"
echo %Variable% --Outputs "Test"
在新线路运行之前,更改才会生效。我需要让它立即生效,因为我需要使用一个非常长的单行命令。
答案 0 :(得分:2)
您需要延迟展开或call echo
:
@echo off
setlocal enableDelayedExpansion
set var=val&echo !var!
endlocal
set var=val&call echo %%var%%
如果您将命令的组合与&
或括号放在一起,则set命令将在所有命令执行后生效。因此您需要或延迟扩展(这将允许您使用{访问变量) {1}}代替!
)或致电
要在命令提示符中启用延迟扩展,您需要像%
:
cmd /v:on