3

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

我开始我的批处理文件如下:

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

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

我试过有和没有UseShellExecute.

4

2 回答 2

1

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

于 2013-10-08T21:35:29.127 回答
0

似乎您可以重定向StdOut并阅读它,直到它关闭。

这个类似的问题中得到这个想法。

调整您的代码段,即:

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

Process p = Process.Start(startInfo);
String output = proc.StandardOutput.ReadToEnd();
于 2013-10-08T19:08:50.143 回答