Board logo

标题: [网络连接] 批处理怎样自动输入telnet用户名和密码? [打印本页]

作者: hg17173    时间: 2008-3-10 09:50     标题: 批处理怎样自动输入telnet用户名和密码?

在BAT中执行到talnet 连接输入密码的命令时没办法输入
有没有高手帮助一下
set     /p password=huawei
这组命令也不行!
在telnet中输入密码要怎么写?
作者: ccccpp    时间: 2011-9-1 14:59

转:
telnet自动登录路由器、交换机等网络设备的批处理
@echo off
echo set sh=WScript.CreateObject("WScript.Shell") >telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "open 你的网络设备telnet登录IP" >>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "{ENTER}" >>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "你的用户名{ENTER}">>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "你的密码{ENTER}">>telnet_tmp.vbs
start telnet
cscript //nologo telnet_tmp.vbs
del telnet_tmp.vbs

解释:
本段代码WScript.Sleep 300 表示登录设备延时,就是给设备一个接受出来的时间;open 是打开telnet,并登录到指定ip地址;{ENTER}自然是回车了;SendKeys是关键,表示自动输入的内容。保存以上内容为rout.bat批处理文件,每次登录网络设备就不要先win+R -- cmd -- telnet IP -- 用户名 -- 密码 这样麻烦了,直接运行这个bat文件即到达登录状态。当然,如果你想登录后进入其他状态,比如conf配置状态,你还可以在输入密码后面再加几行,比如:

...

echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "你的密码{ENTER}">>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "conf{ENTER}">>telnet_tmp.vbs
start telnet
...

telnet登陆后的命令在start telnet之后写,如需回车还要加上{ENTER},和延时命令

有的交换机在输入后需要更多的等待时间,可以酌情多增加几行echo WScript.Sleep 300 >>telnet_tmp.vbs给设备缓冲延时。
作者: qiao849    时间: 2012-2-15 21:44

这个只是针对单台网络设备的,如果要批量登录设备要怎么写啊
作者: xiaoxiami    时间: 2012-2-16 11:08

回复 2# ccccpp


    sendkeys是很有局限性的,在电脑处于屏保状态时不起作用的,而且它也只能输入到当前的活动窗口,但是有可能这个时候会弹出其他窗或者用户在操作别的窗口,这样就不能将起到在规定的窗口输入用户名和密码了




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2