暂停/等待* .bat完成VB.net

时间:2010-11-09 14:14:16

标签: vb.net

嗨我需要暂停/等待arorasTEMP.bat和“Label2.Text =”追加AutoCAD版本A ...之间的轰鸣声VB程序,因为它发生了蝙蝠在临时复制之前附加< / p>

    Dim RetBat1

    RetBat1 = Shell("C:\VTS\arorasTEMP.bat", 1)

    Label2.Text = "Appending for AutoCAD version A..."

    'Appending the acad2011.lsp
    If System.IO.File.Exists(FILE_NAME1) = True Then
        Dim objWriter As New System.IO.StreamWriter(FILE_NAME1, True)
        objWriter.WriteLine(arorasKEY)
        objWriter.Close()

    End If

任何人都能举例吗?

2 个答案:

答案 0 :(得分:4)

Shell是一个VB6命令,它不是启动进程的理想方式。

.NET中调用进程并等待它的正确方法是:

Dim aroras as Process = Process.Start("C:\VTS\arorasTEMP.bat")
aroras.WaitForExit()
' error code is available in aroras.ExitCode, if you need it 

如果花费太长时间,你也可以强行杀死它:

If Not aroras.WaitForExit(300) Then
   aroras.Kill()
End If

(其中300是等待的时间,以毫秒为单位)

答案 1 :(得分:1)

你可以告诉shell在执行其他任何事情之前等待进程完成:

RetBat1 = Shell("C:\VTS\arorasTEMP.bat", ,True) 

如果花费太长时间,甚至会给出超时停止执行,在这种情况下为6秒:

RetBat1 = Shell("C:\VTS\arorasTEMP.bat", , True, 6000) 

有关Shell函数的更多信息:http://msdn.microsoft.com/en-us/library/xe736fyk(VS.80).aspx