0

现在我有以下脚本工作:

set WshShell = CreateObject("WScript.Shell") 

WshShell.run ("%COMSPEC% /c ipconfig  /release"), 0, true
WshShell.run ("%COMSPEC% /c ipconfig  /renew"), 0, true

PINGFlag = Not CBool(WshShell.run("ping -n 1 www.google.com",0,True))
If PINGFlag = True Then
    MsgBox("ip release/renew was successful")
Else
    MsgBox("ip release/renew was not successful")
End If

我对 vbscript 不太熟悉,但它似乎是显示弹出消息的最佳选择。我从网上找到的其他脚本拼凑了这个脚本,所以我想了解更多关于它是如何工作的:

我的问题是我不完全了解以下行是如何工作的:

PINGFlag = Not CBool(WshShell.run("ping -n 1 www.google.com",0,True))

它在做什么来确定 PINGFlag 的布尔值?

谢谢!

4

1 回答 1

2

.Run(...) 返回执行的进程的退出代码/错误级别。CBool​​() 为 0 返回 False 或为其他数字返回 True。通过应用 Not,“好”案例变为 True,所有“坏”错误级别为 False。

然后您可以“自然地”对 If 语句进行编码:

If PINGFlag Then ' comparing boolean variables against boolean literals is just noise
    MsgBox "ip release/renew was successful" ' no () when calling a sub
Else
    MsgBox "ip release/renew was not successful"
End If
于 2013-07-31T14:40:33.917 回答