问题是WaitForExit不会等到批处理文件退出。它几乎马上回来了。
我正在启动我的批处理文件,如下所示:
ProcessStartInfo startInfo = new ProcessStartInfo(batchFile);
startInfo.UseShellExecute = true;
startInfo.Arguments = arguments;
using (Process p = Process.Start(startInfo))
{
p.WaitForExit();
}
我尝试使用和不使用UseShellExecute
。
答案 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();