我尝试用vbs创建一个Ping脚本。我需要一个脚本,ping(没有ping限制,程序将一直运行)每2秒在网络中的一个计算机名称,并将结果保存在一个txt文件中。
例如:
06/08/2010 - 13:53:22 |计算机“......”在线
06/08/2010 - 13:53:24 |计算机“...”处于离线状态
现在我尝试一下:
strComputer = "TestPC"
Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}")._
ExecQuery("select * from Win32_PingStatus where address = '"_
& strComputer & "'")
For Each objStatus in objPing
If IsNull(objStatus.StatusCode) Or objStatus.StatusCode <> 0 Then
..........
Next
而且我不知道如何制作它。 (我是vbs的新手: - ))
我希望有人可以帮助我。
问候语, 的Matthias
答案 0 :(得分:4)
试试这个
Option Explicit
Dim strHost, strFile
strHost = "www.google.com" '"127.0.0.1"
strFile = "C:\Test.txt"
PingForever strHost, strFile
Sub PingForever(strHost, outputfile)
Dim Output, Shell, strCommand, ReturnCode
Set Output = CreateObject("Scripting.FileSystemObject").OpenTextFile(outputfile, 8, True)
Set Shell = CreateObject("wscript.shell")
strCommand = "ping -n 1 -w 300 " & strHost
While(True)
ReturnCode = Shell.Run(strCommand, 0, True)
If ReturnCode = 0 Then
Output.WriteLine Date() & " - " & Time & " | The Computer " & strHost & " is online"
Else
Output.WriteLine Date() & " - " & Time & " | The Computer " & strHost & " is offline"
End If
Wscript.Sleep 2000
Wend
End Sub
答案 1 :(得分:1)
你把你的ping放在某种循环中,然后使用Wscript.Sleep 2000
睡2秒钟。
然后使用File System Object
(FSO)写入文件。可以找到信息here。
编辑:这样的事情可能有用:
Const OpenFileForAppending = 8
Dim fso, ts
Set fso = CreateObject("Scripting. FileSystemObject")
While 1 > 0 ' loop forever
Set ts = fso.OpenTextFile("c:\temp\test.txt", OpenFileForAppending, True)
' do your pinging code
'if ok
ts.WriteLine("OK")
'else
ts.WriteLine("Not OK")
'endif
ts.Close()
Wscript.Sleep 2000
Wend