Windows 在vbscript中捕获命令行输出

Windows 在vbscript中捕获命令行输出,windows,command-line,vbscript,Windows,Command Line,Vbscript,获得了一个向服务器执行命令的简单脚本-简要说明: //Create shell set WshShell=CreateObject("WScript.Shell") WshShell.run "cmd.exe" //send commands WshShell.SendKeys "telnet IP_ADDRESS" WshShell.Sendkeys "dir" 服务器提供我想要捕获的反馈。我只需要将第一行捕获到一个变量中,然后将该变量打印出来进行确认 你能帮忙吗?谢谢。不要将Window

获得了一个向服务器执行命令的简单脚本-简要说明:

//Create shell
set WshShell=CreateObject("WScript.Shell")
WshShell.run "cmd.exe"

//send commands
WshShell.SendKeys "telnet IP_ADDRESS"
WshShell.Sendkeys "dir"
服务器提供我想要捕获的反馈。我只需要将第一行捕获到一个变量中,然后将该变量打印出来进行确认

你能帮忙吗?谢谢。

不要将Windows telnet客户端用于自动化目的。Windows附带的telnet客户端仅用于交互式使用

我将使用批处理模式中的:

plink.exe -telnet -batch IP_ADDRESS dir
该工具不需要安装,因此您可以简单地将其与脚本一起部署

使用在批处理文件中运行,或使用该方法在VBScript中运行,以便可以:


这可能不是最好的方法,但对我来说很有效:

Windows telnet命令可以使用-f参数在客户端保存输出。因此,您可以使用:

WshShell.SendKeys "telnet -f D:\output\telnet.out IP_ADDRESS"

在您的脚本结束时,只需处理telnet.out的内容

另一个可编写脚本的telnet是Albert Yalethaks为您编写的telnet脚本工具v.1.0-我需要运行的实际命令几乎是静音的get-这是我输入的内容,但它似乎没有将其传递到服务器:如果您能让我通过它,我将不胜感激。。plink-telnet-batch 62.39.x.x-P 24 mute靠近getHow它看起来如何不将其传递给服务器?当您在命令提示符下手动运行该命令时,您会得到什么结果?仅当我这样做时,它似乎才起作用:get | plink-telnet-batch 62.39.x.x-P 24附近的echo mute现在将其打印为telnet输出的最后一行-您能详细说明如何使用exec方法捕获它吗?这是我的最后一个问题。。。。提前谢谢。谢谢,谢谢你的帮助。我们就快到了,但不幸的是,它并没有结束,直到我按下CTRL-c键。我想我可能需要发送一个额外的exit命令,或者以另一种方式退出do-while循环。
WshShell.SendKeys "telnet -f D:\output\telnet.out IP_ADDRESS"