Tôi nhận được lỗi 800A0414 trong dòng 7 và 12 của kịch bản này:Không thể sử dụng dấu ngoặc khi gọi một Lỗi Sub 800A0414 VBS
Module Module1
Dim p
Sub Main()
CreateObject("Wscript.Shell").Run("program.bat", 0, True)
p = Process.GetProcessesByName("program")
If p.Count > 0 Then
WScript.Sleep(300000)
Else
CreateObject("Wscript.Shell").Run("program clean up.bat", 0, True)
End If
End Sub
Private Function WScript() As Object
Throw New NotImplementedException
End Function
End Module
Tôi cố gắng để chạy một kịch bản hàng loạt, bắt đầu một quá trình, sau đó đợi cho đến khi quá trình chấm dứt, sau đó chạy một tập lệnh batch khác. Tôi cũng không muốn bất kỳ hộp lệnh nào được hiển thị. Nếu họ là một cách dễ dàng hơn xin vui lòng cho tôi biết.
Nhờ sự giúp đỡ của bạn
Dường như có ngoại lệ cho phép bạn sử dụng dấu ngoặc đơn nếu bạn chỉ sử dụng thông số đầu tiên. I E. 'CreateObject (" Wscript.Shell "). Chạy (" chương trình.bat ")' hoạt động mà không có khiếu nại – BeowulfNode42
@ BeowulfNode42: '.Run (" program.bat ")' là cú pháp hợp lệ - nó được hiểu là 'Call ... Run ((" program.bat "))'. đối số cụ thể buộc đối số này được thông qua 'ByVal' thay vì' ByRef'. Nói cách khác, 'MySub (param)' sẽ hoạt động nếu sub đang chờ đối số 'ByVal', nhưng sẽ không hoạt động nếu nó đang chờ' ByRef' Để biết chi tiết, xem [ByRef và ByVal trong VBScript] (http://stackoverflow.com/q/1537819/113116) – Helen