c++运行批处理文件而不重定向输出
C++ Run Batch File Without Redirecting Output
tempString = (string("cmd.exe /C "") + tempString + """);
STARTUPINFO si = { sizeof(STARTUPINFO) };
PROCESS_INFORMATION pi;
CreateProcess(NULL, (LPSTR)tempString.c_str(), 0, 0, FALSE, CREATE_UNICODE_ENVIRONMENT, NULL, 0, &si, &pi);
我正在通过dll从另一个进程内开始批处理脚本。问题是进程显示:
错误:不支持输入重定向,退出进程立即.
如何启动批处理脚本,使其独立于调用进程(当calllee关闭时不会关闭)并且不在调用进程的控制台中输出?
如果您不想在执行命令字符串时显示控制台窗口,您可以这样做:
tempString = (string(" /C "") + tempString + """);
ShellExecute(NULL, NULL, "cmd.exe", tempString.c_str(), NULL, SW_HIDE);
CREATE_NEW_CONSOLE
标志为进程分配一个新的控制台,以便它不使用与调用进程相同的标准输出。
相关文章:
- 将标准输出重定向到ostream
- 重定向输入和输出时如何处理主文件I/O?
- 在程序执行期间从标准输出重定向到自定义流
- 始终输出到屏幕并允许重定向
- 将 Tcl 中的命令输出重定向到文件时,文件以 DOS 格式生成
- 将 Linux system() 调用命令的输出重定向到仅可变的
- 将 ffmpeg 控制台输出重定向到C++中的字符串或文件
- Win32 GUI C(++) 应用将标准输出和标准输出重定向到磁盘上的同一文件
- 将线程之间的标准输入/输出重定向
- 无法使用创建进程重定向标准输出
- 重定向子进程的输出
- 我可以重定向两个子进程的标准输出吗?
- GDB Cygwin 不会将输出重定向到文件
- 重定向标准输出时调用 dup2 失败
- 如何在 CPP 中反转重定向输出操作
- 创建进程和重定向输出
- bash:重定向输出混淆
- Qt重定向输出从cout到qDebug
- 我如何用CreateProcess重定向输出到文件
- c++运行批处理文件而不重定向输出