在调用进程的上下文中通过win32执行批处理,从而保留环境变量

时间:2018-03-21 19:04:48

标签: c++ batch-file winapi

我有自己的应用程序来构建大量的C ++项目。在Windows上我需要通过vcvarsall.bat设置环境变量,但是如何在当前进程的上下文中从C ++控制台应用程序执行批处理,以便为我的应用程序保留批处理创建的环境? _spawnvp和ShellExecuteEx都创建了一个专用进程。

编辑:我当然知道如何执行流程或批处理,但我想知道保留批处理创建的环境。

1 个答案:

答案 0 :(得分:1)

无法自动将子进程的环境应用于父进程。您可以通过跳过一些箍来手动阅读子环境。 Check for environment variable in another process?

但可以说有更简单的方法。这是一对夫妇。

  • 以编程方式创建一个调用vcvarsall.bat的批处理文件,然后调用该编译。
  • 以编程方式创建一个调用vcvarsall.bat的批处理文件,然后将环境写入文件(set > env.txt)。然后读取并解析该文本文件。