设置变量并在一个批处理命令行中生效

时间:2014-09-20 15:49:50

标签: batch-file command-prompt

我刚刚发现如果您执行以下操作:

set Variable=Test & echo %Variable%  --Outputs "%Variable%"
echo %Variable%                      --Outputs "Test"

在新线路运行之前,更改才会生效。我需要让它立即生效,因为我需要使用一个非常长的单行命令。

1 个答案:

答案 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