我正在做一个程序,需要启动cmd,然后启动一个批处理文件。问题是我使用的是MyProcess.WaithForexit();,我认为它不会等到批处理文件处理完成。它只是等待直到cmd关闭。到目前为止,我的代码:

System.Diagnostics.ProcessStartInfo ProcStartInfo =
    new System.Diagnostics.ProcessStartInfo("cmd");
    ProcStartInfo.RedirectStandardOutput = true;
    ProcStartInfo.UseShellExecute = false;
    ProcStartInfo.CreateNoWindow = false;
    ProcStartInfo.RedirectStandardError = true;
    System.Diagnostics.Process MyProcess = new System.Diagnostics.Process();
    ProcStartInfo.Arguments = "/c start batch.bat ";
    MyProcess.StartInfo = ProcStartInfo;
    MyProcess.Start();
    MyProcess.WaitForExit();

我需要等待批处理文件完成。我怎么做?

最佳答案

start命令具有可以使其变成WAIT以便启动的程序完成的参数。如下所示编辑参数以传递“/wait”:

ProcStartInfo.Arguments = "/c start /wait batch.bat ";

我还建议您要使批处理文件退出cmd环境,因此在批处理末尾放置一个“退出”。
@echo off
rem Do processing
exit

这应该实现所需的行为。

09-11 19:15