我一直在尝试使用某种脚本来自动化 telnet 进程。每当我得到提示时,它都会指向 PUTTY。
我已经下载了 PUTTY 及其衍生产品 (plink.exe) 以使我的脚本运行。我似乎无法超越原点...
plink -telnet scriptfile.txt
(所有文件均位于本地)
此时似乎挂了。正确的语法是什么?
答案1
您使用了错误的 plink 应用程序。
尝试使用官方帮助:
http://the.earth.li/~sgtatham/putty/0.58/htmldoc/Chapter7.html
具体页面:7.2.3.1 -batch:禁用所有交互式提示
答案2
我不确定其他答案在说什么。简单的命令行概要plink
是
叮咚 [选项][用户@]主持人[命令]
所以最簡單用法是
叮当主持人
在哪里host
当然,可以是常规主机名(可通过 DNS、NIS、hosts
文件或其他方式解析)或(数字)IP 地址。您可能还可以使用 PuTTY 保存的配置文件名称(其中包含主机标识以及一组选项)。您可能需要使用该-telnet
选项来告知plink
不要使用rlogin
协议或 SSH。
我不知道你读过什么关于脚本的内容plink
。据我所知,PuTTY 没有任何这样的功能。我有expect
完成的是使用驱动器自动进行远程登录(我实际上使用了 SSH)plink
。我expect
从 ActiveState 获得了 ActiveTcl 包的一部分。(如果您搜索此站点,您应该能够找到有关如何执行此操作的一些说明。)然后我写了一个名为的文件,foo.tcl
它看起来有点像这样:
# 将 Expect 包加载到 Tcl 中 软件包需要期望 exp_spawn plink 10.10.10.10 预计 : { # 等待服务器发出登录:迅速的。 exp_send -s “gman\r” # 我的用户名(不是真的)。 } 期望单词:{ # 等待服务器发出密码:迅速的。 exp_send -s "iLoveCats\r"# 我的密码(不是真的)。 } ︙
然后我通过输入来运行它tclsh foo.tcl
。
祝你好运!
PS 实际上不要像我展示的那样添加注释。ActiveTcl做允许以 开头的评论 #
,但显然只能在单独的行上。
聚苯硫醚command
命令行中的参数指的是登录到远程主机后plink
想要发送给远程主机的命令。plink
答案3
我正在使用以下 .bat 文件,它运行良好。
plink hostip -P portnum < cmds.txt
就我而言,cmds.txt 只是我使用 putty 客户端时输入的命令。
您还可以通过这种方式获取 plink 返回的用于诊断目的的输出:
plink hostip -P portnum < cmds.txt > output.txt