如何在批处理文件中获取持续更新的环境变量

sat*_*hya 2 batch

我想访问第二个批处理文件中更新的环境变量,该文件使用第一个批处理文件不断变化。

e.var 使用第一个批处理文件不断变化,但在启动第二个批处理文件后,我只得到一个分配给 E.variable 的值。

例如:

第一个批处理文件:

:start   
setx ev=%random%
sleep 5s
goto start:
Run Code Online (Sandbox Code Playgroud)

第二个批处理文件:

:start    
echo %ev%
sleep 10s  
goto start:
Run Code Online (Sandbox Code Playgroud)

小智 5

可能对环境变量存在一些误解。这些不是在运行的进程之间共享的(想想这会导致的所有混乱),但每个进程都在自己的环境中运行。

更改ev进程 A 的环境变量对设置或更改ev进程 B的环境变量没有影响。

启动进程的新环境是通过复制其“父进程”(启动它的进程)的环境来创建的。这就是为什么您仍然会看到ev在进程 A 中设置为环境变量后的值。它被复制到运行第二批的新进程的环境中。

而可变ev的A的环境中不断不断变化的变量ev在B的环境将保持不变。