我正在执行使用CreateProcess函数的外部应用程序,以便执行这样的应用程序我需要在运行一个.bat文件之前设置一些环境变量。问题是当我拨打CreateProcess
来运行bat文件,然后再次执行CreateProcess
来运行外部应用程序时,不使用环境变量。问题是我第二次执行CreateProcess
函数时如何使用bat文件中设置的环境变量?使用CreateProcess和通过bat文件设置的环境变量
2
A
回答
6
如果最初的createprocess批处理文件只是设置环境变量,则应创建enviornment变量块,然后直接通过CreateProcess()调用传递它。
一些示例代码可以在这里来获得/设置环境变量和传递块给CreateProcess()http://www.delphidabbler.com/articles?article=6
1
如果您从批处理文件执行其他应用程序,它会设置这些环境变量。您可以将可执行文件名称作为参数传递给批处理文件。在批处理文件中设置环境变量时,它们只存在于该批处理文件退出之前。
2
您可以使用CreateProcess()
运行OS的cmd.exe
程序在同一时间执行多个命令,例如:
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, ...);
相关问题
- 1. 如何使用.bat文件设置环境变量
- 2. 用bat文件在Jenkins中设置环境变量?
- 3. 问题通过bat文件设置环境变量来执行Java程序
- 4. 在bat文件中设置的cygwin环境变量
- 5. 如何通过使用环境变量设置AWS变量
- 6. 通过Perl脚本分配命令BAT文件环境变量
- 7. 通过环境变量设置Apache的Rails环境
- 8. 使用bat命令永久设置java环境变量值
- 9. 设置环境变量路径通过批处理文件
- 10. 通过批处理文件为系统设置环境变量
- 11. Conda环境和.BAT文件
- 12. 如何使用.bat文件在VS2010中添加环境变量?
- 13. 在崇高文本设置使用Windows环境变量文件
- 14. 使用AWS Opsworks设置环境变量
- 15. 使用saltstack设置环境变量
- 16. 使用subshell设置环境变量
- 17. 使用SSH设置环境变量
- 18. 使用Process.start设置环境变量
- 19. 使用perl设置环境变量
- 20. 使用Puppet设置环境变量
- 21. 使用Python设置环境变量
- 22. 在函数中通过引用设置环境变量
- 23. 设置环境变量
- 24. 设置Maven环境变量
- 25. 设置Java环境变量?
- 26. 设置apache环境变量
- 27. 设置环境变量
- 28. DrJava设置环境变量
- 29. C设置环境变量
- 30. 设置环境变量