C++ Run Batch File без перенаправления вывода
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. Проблема в том, что процесс отображает:
ошибка: перенаправление ввода не поддерживается, выход из процесса немедленно.
Как я могу запустить пакетный скрипт, чтобы он не зависел от вызывающего процесса (не закрывается при закрытии вызываемого) и не выводится на консоль вызывающего процесса?
2 ответа
Если вы не хотите показывать окно консоли при выполнении командной строки, вы можете сделать следующее:
tempString = (string(" /C \"") + tempString + "\"");
ShellExecute(NULL, NULL, "cmd.exe", tempString.c_str(), NULL, SW_HIDE);
CREATE_NEW_CONSOLE
Параметр flag выделяет новую консоль для использования процессом, чтобы он не использовал тот же стандартный вывод, что и вызывающий процесс.