【发布时间】:2015-03-05 07:28:58
【问题描述】:
是否可以循环一个函数直到 item = TRUE?
我正在尝试 ping 一个服务器... 一旦建立连接,或 Ping = TRUE,则程序将执行。 如果未建立连接,则 ping 将重复,直到它为 TRUE。
到目前为止,我的代码如下。 如果为 TRUE,MyProgram 将打开。 如果为 False,将再次调用该函数。但这并没有发生……实际上什么也没发生,它只是退出了。
非常感谢任何帮助。 如果有人知道完成此任务的更有效方法,请告诉我。 谢谢!
Function Ping
Dim oPing, oRetStatus, bReturn
Set oPing = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("select * from Win32_PingStatus where address='" & "strHost" & "'")
For Each oRetStatus In oPing
If IsNull(oRetStatus.StatusCode) Or oRetStatus.StatusCode <> 0 Then
bReturn = False
Else
bReturn = True
End If
Set oRetStatus = Nothing
Next
Set oPing = Nothing
Ping = bReturn
End Function
If Ping Then
Call MyProgram
Else
Call PingSub
End If
Sub MyProgram
Dim objShell
Set objShell = WScript.CreateObject( "WScript.Shell" )
objShell.Run("\\Path\To\My\Program.exe")
Set objShell = Nothing
End Sub
Sub PingSub
Call Ping
End Sub
【问题讨论】:
标签: function loops vbscript call