在Windows命令行中运行多个命令

9
如何在Windows命令行中一次运行多个命令? 在*nix环境中,我可以这样做:
export VAR=foo; echo $VAR

我找到的最接近的方法是这样的:
set VAR=foo & echo %VAR%

然而,当我“echo” VAR时,它没有被设置。我需要所有命令在同一进程中执行。

将它们放入一个 .bat/.cmd 文件中。这将在单个 cmd.exe 实例内运行。 - Marc B
我做不到。我是远程运行这些命令(而且它们是自动生成的),我必须像这样运行它们:$ cmd /c commands - pseudo
将来提前提及这种细节会很有帮助。 - Marc B
批处理文件并不是他们想要做的事情。你知道命令序列在一个环境中可以工作,但在另一个环境中却不能工作,因此你非常了解环境之间的差异。你不要求安装Linux,但你要求提醒人们Linux对他们来说是不可接受的。 - Val
1个回答

11

cmd /c call set VAR=foo & echo %VAR% - 这个命令可以正常工作,即使用 "call set" 调用set命令。你可以在每个命令之前都加上 call。


实际上,在“echo”之前仅需加上“call”,也不需要“cmd”。 - Andriy M
1
嗯,我不知道为什么,但这对我不起作用。echo的结果始终是“%VAR%”。 - pseudo
1
Andriy M:对我来说,“cmd /c”是必需的,因为它是一个远程调用,所以我必须将这些命令作为参数放入cmd.exe中。 - pseudo
1
如果您在括号中/c开关后设置表达式会怎样呢? CMD /c "call set var=foo & call cmd /c call echo %var%" - npocmaka
谢谢。整个诀窍在于在内部 cmd 进程中调用 echo。因此,如果我像这样放置它:CMD /c set VAR=foo & cmd /c echo %VAR%,那么它就可以正常工作。 - pseudo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接