0

bat 文件,它运行一个 .exe,然后写入控制台,但是,结果在可执行文件完成后立即返回,而不是在执行期间返回。

我已经从我的桌面手动运行了 .bat,它工作正常并逐行返回结果,但是在我的 C# 应用程序中没有逐行运行。有任何想法吗?

var startInfo = new ProcessStartInfo();

    startInfo.FileName = @"C:\Desktop\TEST\test.bat"; /
    startInfo.UseShellExecute = false;
    startInfo.CreateNoWindow = false;
    startInfo.RedirectStandardOutput = true;
    startInfo.WorkingDirectory = @"C:\Desktop\TEST\";
    startInfo.RedirectStandardError = true;

using (Process Process = Process.Start(startInfo))
{
  using (var reader = (Process.StandardOutput))
  {
  Console.WriteLine(reader.ReadToEnd());
  }
}
4

1 回答 1

1

以下文章应解释您所看到的行为,ReadToEnd 是同步操作,BeginOutputReadLine 是异步的,因此应该更好地满足您的需求。

于 2013-07-29T15:23:19.133 回答