为什么 set 命令不会影响紧随 &/&& 之后的命令?

为什么 set 命令不会影响紧随 &/&& 之后的命令?

我有一堆使用系统变量的命令,它们都是单行命令,如下所示:

set test="blah" && echo %test%

但是,我注意到 set 命令的变量并未针对同一行上的命令进行“设置”。如果我重新运行第二个命令,它将能够读取更新后的变量。我可以使用 & 或 &&,效果相同。此行为在批处理文件中发生,并且只需将其放入命令提示符中即可。

如何让命令影响或set之后的语句?&&&

答案1

test这是因为整个命令行被一次评估,因此在运行命令之前变量就被解析了set

一个简单的解决方法是将命令放在批处理文件中的不同行上并运行它。

相关内容