如何等到我的批处理文件完成
How to wait until my batch file is finished
我正在做一个程序,我需要启动 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();
我需要等到批处理文件完成。我怎么做?
启动命令的参数可以使启动的程序WAIT
完成。如下所示编辑参数以传递 '/wait':
ProcStartInfo.Arguments = "/c start /wait batch.bat ";
我还建议您希望批处理文件退出 cmd 环境,因此在批处理的末尾放置一个 'exit'。
@echo off
rem Do processing
exit
这应该会达到预期的效果。
这实际上对我来说效果很好:
System.Diagnostics.Process.Start("myBatFile.bat").WaitForExit();
正如米尔顿所说,在批处理文件末尾添加 'exit' 很可能是个好主意。
干杯
我正在做一个程序,我需要启动 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();
我需要等到批处理文件完成。我怎么做?
启动命令的参数可以使启动的程序WAIT
完成。如下所示编辑参数以传递 '/wait':
ProcStartInfo.Arguments = "/c start /wait batch.bat ";
我还建议您希望批处理文件退出 cmd 环境,因此在批处理的末尾放置一个 'exit'。
@echo off
rem Do processing
exit
这应该会达到预期的效果。
这实际上对我来说效果很好:
System.Diagnostics.Process.Start("myBatFile.bat").WaitForExit();
正如米尔顿所说,在批处理文件末尾添加 'exit' 很可能是个好主意。
干杯