2015-11-02 26 views
0

如果我要在VB.NET中一个接一个地运行多个批处理文件,他们会同时运行还是等待第一批完成后再继续下一个?如何批处理文件一起运行?

+1

您如何计划运行批处理文件? – Darryl

+0

只要有几行'System.Diagnostics.Process.Start(“batch.bat”)'一个接一个。 – Michael

回答

3

他们将同时运行,除非你不想阻止这种情况发生。 Process.Start()不会阻止一旦该进程已启动。但是,您可以使用Process.WaitForExit()来阻止。

例如,这将在同一时间运行3个批处理文件:

System.Diagnostics.Process.Start("batch.bat") 
    System.Diagnostics.Process.Start("batch.bat") 
    System.Diagnostics.Process.Start("batch.bat") 

这将运行它们一次一个:

System.Diagnostics.Process.Start("batch.bat").WaitForExit() 
    System.Diagnostics.Process.Start("batch.bat").WaitForExit() 
    System.Diagnostics.Process.Start("batch.bat").WaitForExit() 

你有当阻止接管更多的控制权通过将过程保存到一个变量并在代码中稍后调用WaitForExit()

Dim p1 = System.Diagnostics.Process.Start("batch.bat") 
    ' Do stuff that doesn't need to wait for process to finish 
    p1.WaitForExit() 
1

他们将一起运行。如果您希望它等待,请创建一个ProcessStartInfo对象,将其添加到Process.Start调用中,并将Start方法的响应分配给进程。然后调用该进程的WaitForExit方法。