如果我使用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如何能够满足我的需要,原因有多种,谢谢!
答案 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)