首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将CreateProcess与通过bat文件设置的环境变量一起使用

将CreateProcess与通过bat文件设置的环境变量一起使用
EN

Stack Overflow用户
提问于 2012-03-24 10:20:23
回答 3查看 1.7K关注 0票数 2

我正在使用CreateProcess函数执行一个外部应用程序,为了执行这样的应用程序,我需要在运行.bat文件之前设置一些环境变量。问题是,当我调用CreateProcess来运行bat文件,然后再次执行CreateProcess来运行外部应用程序时,没有使用环境变量。问题是,当我第二次执行CreateProcess函数时,如何使用bat文件中设置的环境变量?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-24 12:15:51

如果最初的createprocess批处理文件只是设置环境变量,则创建环境变量块,并通过CreateProcess()调用直接传递它。

此处提供了一些示例代码,用于获取/设置环境变量以及将块传递给CreateProcess() http://www.delphidabbler.com/articles?article=6

票数 6
EN

Stack Overflow用户

发布于 2012-03-24 13:46:14

您可以使用CreateProcess()来运行操作系统的cmd.exe程序,以便一次执行多个命令,例如:

代码语言:javascript
复制
TCHAR szCmd[(MAX_PATH * 3) + 16] = {0};
TCHAR szPathToCmdExe[MAX_PATH+1] = {0}
GetEnvironmentVariable(TEXT("COMSPEC"), szPathToCmdExe, MAX_PATH+1);
wsprintf(szCmd, TEXT("\"%s\" /C \"%s && %s\""), szPathToCmdExe, szPathToBat, szPathToProgram);
CreateProcess(NULL, szCmd, ...);
票数 2
EN

Stack Overflow用户

发布于 2012-03-24 10:34:15

如果从批处理文件执行另一个应用程序,它将设置这些环境变量。您可以将可执行文件名作为参数传递给批处理文件。在批处理文件中设置环境变量时,这些环境变量仅在该批处理文件退出之前存在。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9848601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档