教我如何编写 Telnet 脚本

3
这是我的情况。我正在使用一台摩托罗拉 Canopy。每次关闭电脑或关闭调制解调器时,Canopy 的 ESN 都会更改回其默认值。
我一直在启动时反复运行 telnet 以使我的互联网连接正常工作。我想要一个批处理文件来完成这项工作,这样我就不必再次运行 telnet。我使用的是 Windows 7 32 位。
以下是详细信息:
- Canopy telnet 是 169.254.1.1(它没有任何密码) - 我要放置的 ESN 是 db:68:d3
手动使用以下脚本可以完成此操作:
telnet 169.254.1.1
mac db:68:d3

完成了...

如果有人能帮我写这个脚本,将是极大的帮助。我已经写了一个简单的脚本,但问题是它停在了telnet处。

cd \
rem .
COLOR 0E
@ECHO OFF
cls
ECHO Change ESN
pause
ECHO ARE YOU SURE YOU WANT TO PROCEED? 
pause
ECHO ARE YOU SURE?
pause
telnet 169.254.1.1 >>>>>>>>>>>>>>>>>>>>>>>>>>>>after this the script below doesn't follow.
testing
enable
telnet+> mac db:68:d3
ECHO You have Changed ESN successfuly
ECHO Done.
Echo 

Telnet会占用你的终端,因此当你在批处理脚本中输入“telnet”命令时,它会期望从你的键盘输入。 - Jon Lin
我明白了,我的问题是,能否运行那个脚本?或者您更喜欢其他编程语言吗?比如什么? - Kris_aquino
无法运行该脚本。无论你想用什么语言编写,都很容易,只需要打开一个到端口23的套接字,并发送mac db:68:d3 - Jon Lin
2个回答

4

你不能使用批处理文件来完成此任务,但是可以使用Windows脚本和VBScript来实现,这些程序默认也应该可用。将以下代码保存为autoscript.wsf(.wsf是Windows脚本文件):

<job>
<script language="VBScript">
Option Explicit
On Error Resume Next
Dim WshShell
set WshShell=CreateObject("WScript.Shell")
WshShell.run "cmd.exe"
WScript.Sleep 1000
WshShell.SendKeys "telnet 169.254.1.1"
WshShell.Sendkeys("{Enter}")
WScript.Sleep 1000
WshShell.SendKeys "mac db:68:d3"
WshShell.Sendkeys("{Enter}")
WScript.Sleep 1000
WshShell.SendKeys "exit"
WshShell.SendKeys ("{Enter}")
WScript.Quit 
</script>
</job>

并从您的批处理文件中调用它

call autoscript.wsf

或者直接运行

C:\> autoscript.wsf

0

快速搜索显示,您可以使用putty及其命令行实用程序plink来获得所需的结果。您可以在此处获取它们:putty下载页面

将您的命令放入文件中(例如myCommandFile.txt):

mac db:68:d3
exit

然后您应该能够从命令行运行plink 169.254.1.1 -telnet <myCommandFile.txt来设置所需的ESN。

我不确定是否会正确断开/终止plink,您需要使用您的设置进行测试。

确认它按预期工作后,将其放入批处理文件中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接