Выполнение файла C # .bat с перенаправлением ошибок и вывода
У меня есть файл .bat для выполнения.
Внутри этого.bat
файл, в конце этого кода
START _file_creator.bat %some_arg_name%
ENDLOCAL
EXIT
Я не хочу показывать окно во время выполнения, а также я должен ждать, пока операция, выполняемая этим.bat
файл завершается, а затем прекращает выполнение (в конце операции я вижу стандартный текст "Нажмите любую клавишу, чтобы продолжить"). Мне также нужно проверить вывод и ошибки в этом файле, поэтому я пытаюсь использовать этот код:
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = @"C:\m_f\_config.bat";
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.Start();
proc.WaitForExit();
output1 = proc.StandardError.ReadToEnd();
proc.WaitForExit();
output2 = proc.StandardOutput.ReadToEnd();
proc.WaitForExit();
Но все, что я получаю, это ошибка
Windows can not find file "_file_creator.bat".
Make sure you typed the name correctly and try again.
конечно, если я бегу это.bat
файл сproc.StartInfo.UseShellExecute = true
он работает нормально, но в этом случае я не могу установитьRedirectStandardError = true
а такжеRedirectStandardOutput = true
Как это исправить?
Editиспользуя этот код, он работает сейчас
proc.StartInfo.FileName = @"C:\m_f\_config.bat";
proc.StartInfo.WorkingDirectory = @"C:\m_f\";