我正在编写一个简单的脚本来ping地址并将结果保存在txt文件中。
目的仅仅是为了让那些不知道如何的非专业用户方便:
到目前为止,我已经创建了这个.bat文件,但是我想在vbs上获得更多功能和更好的视觉效果。
.BAT APPROACH
@ECHO OFF
:LOOPSTART
time /T >> PingTest.txt
ping 1.1.1.1 -n 100 >> %userprofile%\Desktop\PingTest.txt
exit
GOTO LOOPSTART
.VBS APPROACH
Dim WshShell, i
Set WshShell = CreateObject("WScript.Shell")
WshShell.Popup "This program will run a connectivity test using PING", 5, "PING TEST!"
Dim strHost, strFile
strHost = "1.1.1.1"
strFile = "ping_test.txt"
PingCall strHost, strFile
Sub PingCall (strHost, outputfile)
Dim Output, Shell, strCommand, ReturnCode
Set Output = CreateObject("Scripting.FileSystemObject").OpenTextFile(outputfile, 8, True)
Set Shell = CreateObject("wscript.shell")
strCommand = "ping -n 100 " & strHost
While(True)
WshShell.Popup "Please, wait while test is being executed...", 1, "Test Running"
ReturnCode = Shell.Run(strCommand, 0, True)
Wend
End Sub
我遇到的问题 - 使用VBS脚本 - :
就是这样。
我是不是太复杂了?
答案 0 :(得分:2)
您可以将此行放入快捷方式
WshShell.exec
您需要使用返回
的ReadAll
WshScriptExec对象由WshShell对象的Exec方法返回。 Exec方法在脚本或程序执行完毕后或脚本或程序开始执行之前返回WshScriptExec对象。
(来自帮助)
它允许您访问文本所在的StdOut。在它上面做Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * From win32_PingStatus where address='104.43.195.251'")
For Each objItem in colItems
msgbox "Status" & objItem.statuscode & " Time " & objItem.ResponseTime
Next
。
然而,VBScript可以自己执行ping操作
Do while Counter < 100
Counter = Counter + 1
...Ping code here ...
Loop
使用做100次。
wmic PATH win32_PingStatus get /?
有关可用属性的帮助,请在命令提示符
中wmic PATH win32_PingStatus call /?
PingStatus没有任何方法,但如果有的话
MONTH,EVENT,DURATION
2015-03,Event1,1030
2015-03,Event2,365
2015-03,Event9,1010
您需要将脚本放入HTA(基本上是名为script.hta的网页)并使用计数器更新网页。您可以从此处窃取代码https://msdn.microsoft.com/en-us/library/ms976290.aspx
答案 1 :(得分:1)
您可以使用此代码:
TTL