我正在執行使用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. 設置環境變量