如何等到我的批处理文件完成

时间:2015-06-06 12:05:34

标签: c# windows batch-file cmd wait

我正在执行一个程序,我需要启动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();

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

2 个答案:

答案 0 :(得分:3)

start命令有一些参数可以使WAIT启动程序完成。编辑如下所示的参数以传递' / wait':

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

我还建议您希望批处理文件退出cmd环境,然后放置'退出'在批次结束时。

@echo off
rem Do processing
exit

这应该达到预期的效果。

答案 1 :(得分:2)

这实际上对我来说很好:

System.Diagnostics.Process.Start("myBatFile.bat").WaitForExit();

正如米尔顿所说,在批处理文件的末尾添加“退出”是一个好主意。

欢呼