【问题标题】:open CMD window and run command打开 CMD 窗口并运行命令
【发布时间】:2013-08-09 01:25:51
【问题描述】:

以下 VB 脚本打开 CMD 窗口并执行 ping 到 IP - 127.0.0.1

我不明白为什么 CMD 窗口的输出只包括 ping 的结果,而不包括“ping 127.0.0.1”?

我的问题需要在我的 VB 脚本中进行哪些更改才能从 CMD 窗口看到 ping 命令,而不仅仅是 ping 结果?

我的 VB 脚本:

 Dim oShell
 Set oShell = WScript.CreateObject ("WScript.Shell")
 oShell.run "cmd /k CD C:\Program Files & ping 127.0.0.1   " ,1 , true

我从 CMD 看到的只是:( ping 127.0.0.1 not apears ?)

Pinging 127.0.0.1 with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Ping statistics for 127.0.0.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms

【问题讨论】:

  • 为什么不直接使用批处理文件?
  • 我已经使用了 VB 脚本的 cod,所以这个选项不相关
  • 您可以使用“cmd /k @echo ping 127.0.0.1 & ping 127.0.0.1”。不需要 CD(实际上由于目录名称中的空格而无法使用)。
  • 这正是预期的结果。如果您在实际命令提示符下键入“ping 127.0.0.1”,则输出不会在开始向您显示结果之前再次重复您的ping 127.0.0.1。为什么仅仅因为您是从 VBScript 运行它就期望它这样做?
  • 使用MsgBox 显示命令字符串,然后通过oShell.Run 运行它。

标签: vbscript


【解决方案1】:

“ping 127.0.0.1”是一个批处理文件命令。如果您点击开始按钮,输入“命令提示符”,打开命令提示符并输入该命令,您将获得与我所得到的内容一致的输出。

Pinging 127.0.0.1 with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL-128
Reply from 127.0.0.1: bytes=32 time<1ms TTL-128
Reply from 127.0.0.1: bytes=32 time<1ms TTL-128
Reply from 127.0.0.1: bytes=32 time<1ms TTL-128

Ping statistics for 127.0.0.1:
     Packets: Sent = 4, Received =  4, lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-12
    • 1970-01-01
    相关资源
    最近更新 更多