0

如果我使用 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 如何能够出于多种原因完成我需要的工作,谢谢!

4

2 回答 2

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
于 2013-04-19T15:01:22.997 回答
1

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

于 2013-04-19T14:59:51.880 回答