在C#中启动批处理文件,然后在继续之前等待它退出

时间:2013-10-08 19:01:16

标签: c# .net batch-file

问题是WaitForExit不会等到批处理文件退出。它几乎马上回来了。

我正在启动我的批处理文件,如下所示:

            ProcessStartInfo startInfo = new ProcessStartInfo(batchFile);
            startInfo.UseShellExecute = true;
            startInfo.Arguments = arguments;

            using (Process p = Process.Start(startInfo))
            {
                p.WaitForExit();
            }

我尝试使用和不使用UseShellExecute

2 个答案:

答案 0 :(得分:1)

您可以尝试使用“/ c yourbatchfile”作为命令行参数运行cmd。

答案 1 :(得分:0)

您似乎可以重定向StdOut并将其读取直至关闭。

this similar question获得这个想法。

调整您的代码段,即:

ProcessStartInfo startInfo = new ProcessStartInfo(batchFile);
//startInfo.UseShellExecute = true;
startInfo.Arguments = arguments;
startInfo.RedirectStandardOutput = true;

Process p = Process.Start(startInfo);
String output = proc.StandardOutput.ReadToEnd();