我们如何使用 C++ Lib Function 或 Windows API 在一个会话中执行多个 cmd 命令?

Yog*_*esh 2 c++ windows winapi cmd

在 C++ 中运行 cmd 命令之前,我想设置一些临时环境变量,该变量会在命令行会话结束时被删除。例如,在执行下面的 cmd 命令之前,我想设置P4PASSWDperforce 环境变量。

sprintf_s(p4Command, 500, "/C p4.exe print -o \"%s\" -q %s", destination, source);

LPCSTR Command = p4Command;

ShellExecute(0, "open", "cmd.exe", Command, 0, SW_HIDE);
Run Code Online (Sandbox Code Playgroud)

如果允许我们在一个会话中执行多个 cmd 命令,则这是可能的。但我不知道如何实现。如果需要更多输入,请告诉我。

Gun*_*ele 5

使用 CreateProcess 运行 p4.exe 并在 lpEnvironment 参数中传递一组环境变量。

http://msdn.microsoft.com/en-us/library/windows/desktop/ms682009%28v=vs.85%29.aspx

CreateProcess 为您带来额外的好处;您可以等待进程终止,您可以检索退出代码等。