LachlanG Asked: 2009-07-17 16:36:18 +0800 CST2009-07-17 16:36:18 +0800 CST 2009-07-17 16:36:18 +0800 CST Windows telnet 客户端可以编写脚本吗? 772 是否可以使用 Windows Telnet 客户端在脚本中运行一系列命令? 如果没有,是否有任何替代方案? windows scripting telnet 6 个回答 Voted Adam Brand 2009-07-17T16:59:10+08:002009-07-17T16:59:10+08:00 是的。看看这个线程。 Best Answer John Rennie 2009-07-17T23:42:28+08:002009-07-17T23:42:28+08:00 很久以前,我编写了一个 COM 服务器来允许我从 VBScript 进行远程登录。如果您想要一份副本(包括源代码),我很乐意将它放在 Internet 上的某个地方。我用它来远程重启路由器。 为了让您了解它的作用,这是一个示例脚本(删除了错误检查) const SVR = "www.microsoft.com" dim telnet, s, i set telnet = CreateObject("Rhs.Telnet") telnet.Startup() telnet.Connect SVR, 80 telnet.Writeline "GET / HTTP/1.0" telnet.Writeline "Host: www.microsoft.com" telnet.Writeline "User-Agent: RhsTelnet" telnet.Writeline "Accept: */*" telnet.Writeline "" do while telnet.Readline(s, 1000) wscript.echo s loop telnet.Disconnect() telnet.Cleanup() JR 链接到 COM 服务器:嗨 Lachlan 试试http://www.ratsauce.co.uk/RouterCheck.zip 这是 COM 服务器和重启 Draytek 路由器的脚本。脚本 RouterCheck.wsf 检查它是否可以 ping 几个测试主机,因此您可能希望忽略大部分代码。只需使用 RebootRouter 功能并忽略其余部分。这是我的 ADSL 线路的末端,所以下载可能有点慢。 如果有人想要源代码(带有 ATL 的 Visual C++ 5.0),那么我可以将它放在 SourceForge 上。 James F 2009-07-17T23:28:04+08:002009-07-17T23:28:04+08:00 您可以安装 Perl 并使用 Net::Telnet,它可以让您发送和解释接收到的数据。 ActivePerl 可能是启动和运行它的最快方法: http://www.activestate.com/activeperl/ Net::Telnet 记录在这里: http://search.cpan.org/~jrogers/Net-Telnet-3.03/lib/Net/Telnet.pm 有关如何使用 Net::Telnet 进行编码的更多问题可能属于 StackOverflow。您可能还想查看 www.perlmonks.org 以获取示例和提示。 JamesBarnett 2010-12-31T23:28:10+08:002010-12-31T23:28:10+08:00 我知道这是一个非常古老的线程,但是我从一个相关问题来到这里,并注意到错过了一个非常明显的答案。听说过腻子吗?有一个名为 plink 的命令行脚本版本。 Plink 如何 Plink 可执行文件 Hector Sosa Jr 2009-07-18T07:34:49+08:002009-07-18T07:34:49+08:00 如果您不介意商业解决方案,可以使用名为TeSSH的商业 telnet 客户端,它具有丰富的脚本语言,并且可以从命令行运行。它支持在 vbs、perl 和 lua 中编写脚本。它相当便宜,为 34.95 美元。您还可以访问TeSSH 支持论坛。 Michel de Ruiter 2016-12-09T03:24:48+08:002016-12-09T03:24:48+08:00 我根据先前的答案创建了这个批处理脚本: @ECHO OFF SET [email protected] SET [email protected] SET TF=%TEMP%\%~n0.vbs ( ECHO Set sh = WScript.CreateObject^("WScript.Shell"^) ECHO sh.SendKeys "HELO %COMPUTERNAME%~" ECHO sh.SendKeys "MAIL FROM: %ME%~" ECHO sh.SendKeys "RCPT TO: %TO%~" ECHO sh.SendKeys "DATA~" ECHO sh.SendKeys "From: %ME%~" ECHO sh.SendKeys "To: %TO%~" ECHO sh.SendKeys "Subject: Example subject...~" ECHO sh.SendKeys "~" ECHO sh.SendKeys "Contents...~" ECHO sh.SendKeys ".~" ECHO sh.SendKeys "QUIT~" ECHO WScript.Sleep 1000 ECHO sh.SendKeys "~" ) > "%TF%" START "" TELNET.EXE SMTPSERVER 25 CSCRIPT //NoLogo "%TF%" DEL "%TF%"
是的。看看这个线程。
很久以前,我编写了一个 COM 服务器来允许我从 VBScript 进行远程登录。如果您想要一份副本(包括源代码),我很乐意将它放在 Internet 上的某个地方。我用它来远程重启路由器。
为了让您了解它的作用,这是一个示例脚本(删除了错误检查)
JR
链接到 COM 服务器:嗨 Lachlan 试试http://www.ratsauce.co.uk/RouterCheck.zip
这是 COM 服务器和重启 Draytek 路由器的脚本。脚本 RouterCheck.wsf 检查它是否可以 ping 几个测试主机,因此您可能希望忽略大部分代码。只需使用 RebootRouter 功能并忽略其余部分。这是我的 ADSL 线路的末端,所以下载可能有点慢。
如果有人想要源代码(带有 ATL 的 Visual C++ 5.0),那么我可以将它放在 SourceForge 上。
您可以安装 Perl 并使用 Net::Telnet,它可以让您发送和解释接收到的数据。
ActivePerl 可能是启动和运行它的最快方法:
http://www.activestate.com/activeperl/
Net::Telnet 记录在这里:
http://search.cpan.org/~jrogers/Net-Telnet-3.03/lib/Net/Telnet.pm
有关如何使用 Net::Telnet 进行编码的更多问题可能属于 StackOverflow。您可能还想查看 www.perlmonks.org 以获取示例和提示。
我知道这是一个非常古老的线程,但是我从一个相关问题来到这里,并注意到错过了一个非常明显的答案。听说过腻子吗?有一个名为 plink 的命令行脚本版本。
Plink 如何 Plink 可执行文件
如果您不介意商业解决方案,可以使用名为TeSSH的商业 telnet 客户端,它具有丰富的脚本语言,并且可以从命令行运行。它支持在 vbs、perl 和 lua 中编写脚本。它相当便宜,为 34.95 美元。您还可以访问TeSSH 支持论坛。
我根据先前的答案创建了这个批处理脚本: