如何使用VBS将ping写入文本文件

时间:2013-04-19 14:25:14

标签: scripting vbscript ping writetofile

如果我使用VBS运行一些CMD命令,在本例中ping,如何使用VBS而不是DOS将命令写入文本文件?

Set objCmdTest = WScript.CreateObject ("WScript.Shell")
Set Output = CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\vbs\test.txt",8,true)

Output.WriteLine (objCmdTest.run ("ping failboat"))
Output.WriteLine (objCmdTest.run ("ping 8.8.8.8"))

所以这就是我正在使用的,但是会发生什么;脚本运行,文件生成,2命令提示打开运行ping,最后文件内的文本显示:

0
0

当我更喜欢它的ping输出时。

仅供参考:请不要提供要求我使用DOS进行写作的建议,我想看看VBS如何能够满足我的需要,原因有多种,谢谢!

2 个答案:

答案 0 :(得分:3)

指令Output.WriteLine (objCmdTest.run ("ping failboat"))会将Run方法的返回值写入输出文件。如果要将命令输出附加到输出文件,则必须在命令中重定向输出:

objCmdTest.run "%COMSPEC% /c ping failboat >>C:\vbs\test.txt", 0, True

或使用Exec代替Run

Set ping = objCmdTest.Exec("ping failboat")
Do While ping.Status = 0
  WScript.Sleep 100
Loop
Output.WriteLine ping.StdOut.ReadAll

答案 1 :(得分:1)

WScript.Shell的run方法返回进程的退出代码。为了访问应用程序的输出,您需要使用exec方法,并使用返回的对象通过其StdOut属性访问进程的标准输出。