楼 主
请教一个dos下自动telnet的批处理问题
发表于 2007-06-21 13:19 · 中国 新疆 乌鲁木齐 电信
初级用户
★
积分 20
发帖 8
注册 2007-06-21 12:43
19年会员
UID 91968
性别 男
状态 离线
想写一个可以自动telnet到服务器上执行命令的批处理文件,不知道应该用什么办法实现,在unix下实验可以执行,但是按照dos的改了一下不能用,批处理的内容例子如下
例如文件名为test.bat
echo user
ping -n 3 xx.xx.xx.xx>nul
echo passwd
echo commana
.........
执行的时候用test.abt|telnet xx.xx.xx.xx
执行后抱错是“过程试图写入的管道不存在”
不知道在dos下如何可以实现自动的telnet登陆脚本,先谢谢了!
第 2 楼
网上找的
发表于 2007-06-21 13:44 · 中国 河北 石家庄 北京神州长城通信技术发展中心中国长城互联网
初级用户
★★
积分 152
发帖 75
注册 2007-02-06 22:09
19年会员
UID 78805
性别 男
状态 离线
rem =========Yobo-lily版权=======
@del c:\temp.vbs
@echo on error resume next >>c:\temp.vbs
@echo dim WshShell>>c:\temp.vbs
@echo Set WshShell = WScript.CreateObject("WScript.Shell")>>c:\temp.vbs
@echo WshShell.run"cmd">>c:\temp.vbs
@echo WshShell.AppActivate"c:\windows\system32\cmd.exe">>c:\temp.vbs
@echo WScript.Sleep 200>>c:\temp.vbs
@echo WshShell.SendKeys"telnet 192.168.1.100">>c:\temp.vbs
@echo WshShell.SendKeys"{ENTER}">>c:\temp.vbs
@echo WScript.Sleep 100>>c:\temp.vbs
@echo WshShell.AppActivate"telnet.exe ">>c:\temp.vbs
@echo WScript.Sleep 2000>>c:\temp.vbs
@echo WshShell.SendKeys"aaa">>c:\temp.vbs
@echo WshShell.SendKeys"{ENTER}">>c:\temp.vbs
@echo WScript.Sleep 2000>>c:\temp.vbs
@echo WshShell.SendKeys"111">>c:\temp.vbs
@echo WshShell.SendKeys"{ENTER}">>c:\temp.vbs
@echo WScript.Sleep 2000>>c:\temp.vbs
@echo WshShell.SendKeys"ping 192.168.0.1">>c:\temp.vbs
@echo WshShell.SendKeys"{ENTER}">>c:\temp.vbs
@echo WScript.Sleep 1000>>c:\temp.vbs
@echo WshShell.SendKeys"ping 192.168.0.2">>c:\temp.vbs
@echo WshShell.SendKeys"{ENTER}">>c:\temp.vbs
@echo WScript.Sleep 1000>>c:\temp.vbs
@call c:\temp.vbs
rem =========Yobo-lily版权=======
第 3 楼
发表于 2007-06-21 16:21 · 中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
发个我自己用的
@echo off
rem 假设服务器地址为aaa
rem 假设用户名为bbb
rem 假设密码为ccc
echo Set WshShell = CreateObject("WScript.Shell")>%tmp%\TelDelphi1.vbs
echo WshShell.Run "telnet aaa">>%tmp%\TelDelphi1.vbs
echo WScript.Sleep(5000)>>%tmp%\TelDelphi1.vbs
echo WshShell.SendKeys "bbb{enter}">>%tmp%\TelDelphi1.vbs
echo WScript.Sleep(1000)>>%tmp%\TelDelphi1.vbs
echo WshShell.SendKeys "ccc{enter}">>%tmp%\TelDelphi1.vbs
start cscript /nologo %tmp%\TelDelphi1.vbs
ping -n 10 127.1>nul
del /q %tmp%\TelDelphi1.vbs
第 4 楼
发表于 2007-06-21 16:29 · 中国 河北 石家庄 北京神州长城通信技术发展中心中国长城互联网
初级用户
★★
积分 152
发帖 75
注册 2007-02-06 22:09
19年会员
UID 78805
性别 男
状态 离线
Originally posted by HAT at 2007-6-21 04:21 PM:
发个我自己用的
@echo off
rem 假设服务器地址为aaa
rem 假设用户名为bbb
rem 假设密码为ccc
echo Set WshShell = CreateObject("WScript.Shell")>%tmp%\Te ...
学习~
第 5 楼
发表于 2007-06-24 10:35 · 中国 新疆 乌鲁木齐 电信
初级用户
★
积分 20
发帖 8
注册 2007-06-21 12:43
19年会员
UID 91968
性别 男
状态 离线
看来解决的办法好像没有纯命令行的方式,谢谢各位的帮助
第 6 楼
发表于 2007-06-24 10:40 · 中国 新疆 乌鲁木齐 电信
初级用户
★
积分 20
发帖 8
注册 2007-06-21 12:43
19年会员
UID 91968
性别 男
状态 离线
我试验了一下,确实可以登录到服务器了,但是我的问题是,登录到服务器后要实行服务器上的一些脚本或者命令然后返回,能不能请大家再帮忙以下,说明一下在类似楼上两位提供的脚本中,该怎么自动调用服务器段的命令或者是程序呢?谢谢了
第 7 楼
发表于 2007-06-24 11:19 · 中国 湖南 衡阳 电信
中级用户
★★
积分 322
发帖 144
注册 2007-01-10 13:00
19年会员
UID 76062
性别 男
状态 离线
他们都是用控制键盘输入达到目的的
要是服务器卡一下就会出错的啊``
其实这个问题我也想了很久```
现在还没解决``
呵呵 ` `
第 8 楼
发表于 2007-06-24 16:02 · 中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
//但是我的问题是,登录到服务器后要实行服务器上的一些脚本或者命令然后返回
可以在登陆之后执行脚本或者命令的
只需在用户名和密码后面继续SendKeys就行了
第 9 楼
发表于 2007-06-24 20:01 · 中国 上海 电信
中级用户
★★
积分 231
发帖 112
注册 2007-06-19 20:44
19年会员
UID 91827
性别 男
状态 离线
1000 就够了吗?
起码5000 吧?
这个也只能在有正常位置cmd的上,很多时候cmd不放在默认和被path目录里的。而且不是nt系列的就没用了,用command的也没用的。
第 10 楼
发表于 2007-06-25 12:44 · 中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
send username的时候我用的5000
send password的时候用的1000
这样的搭配在我用过的7台unix server上表现良好
第 11 楼
你的有一段 TELNET代码我看见了 想请教
发表于 2009-02-23 12:39 · 中国 上海 东方有线
新手上路
★
积分 1
发帖 1
注册 2009-02-23 12:25
17年会员
UID 139607
性别 男
状态 离线
你的有一段 TELNET代码我看见了 想请教 我的QQ176557234
第 12 楼
发表于 2009-02-23 19:24 · 中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线
非人工登录可以使用WSH中的Exec方法,通过对status\stdin\stdout属性的控制达到无错自动化执行的要求
49206C6F766520796F752067757973 54656C3A3133383238343036373837
第 13 楼
发表于 2009-02-24 15:33 · 中国 广西 南宁 电信
新手上路
★
积分 1
发帖 1
注册 2009-02-23 16:11
17年会员
UID 139624
性别 男
状态 离线
第 14 楼
发表于 2009-07-07 03:38 · 中国 安徽 马鞍山 电信
中级用户
★★
积分 493
发帖 228
注册 2007-02-16 00:38
19年会员
UID 79596
性别 男
来自 安徽
状态 离线
Originally posted by everest79 at 2009-2-23 19:24:
非人工登录可以使用WSH中的Exec方法,通过对status\stdin\stdout属性的控制达到无错自动化执行的要求
具体是怎么样的?
第 15 楼
发表于 2009-07-08 22:45 · 中国 安徽 马鞍山 电信
中级用户
★★
积分 493
发帖 228
注册 2007-02-16 00:38
19年会员
UID 79596
性别 男
来自 安徽
状态 离线
rem =========Yobo-lily版权=======
@del c:\temp.vbs
@echo on error resume next >>c:\temp.vbs
@echo dim WshShell>>c:\temp.vbs
@echo Set WshShell = WScript.CreateObject("WScript.Shell")>>c:\temp.vbs
@echo WshShell.run"cmd">>c:\temp.vbs
@echo WshShell.AppActivate"c:\windows\system32\cmd.exe">>c:\temp.vbs
@echo WScript.Sleep 200>>c:\temp.vbs
@echo WshShell.SendKeys"telnet 192.168.1.100">>c:\temp.vbs
@echo WshShell.SendKeys"{ENTER}">>c:\temp.vbs
@echo WScript.Sleep 100>>c:\temp.vbs
@echo WshShell.AppActivate"telnet.exe ">>c:\temp.vbs
@echo WScript.Sleep 2000>>c:\temp.vbs
@echo WshShell.SendKeys"aaa">>c:\temp.vbs
@echo WshShell.SendKeys"{ENTER}">>c:\temp.vbs
@echo WScript.Sleep 2000>>c:\temp.vbs
@echo WshShell.SendKeys"111">>c:\temp.vbs
@echo WshShell.SendKeys"{ENTER}">>c:\temp.vbs
@echo WScript.Sleep 2000>>c:\temp.vbs
@echo WshShell.SendKeys"ping 192.168.0.1">>c:\temp.vbs
@echo WshShell.SendKeys"{ENTER}">>c:\temp.vbs
@echo WScript.Sleep 1000>>c:\temp.vbs
@echo WshShell.SendKeys"ping 192.168.0.2">>c:\temp.vbs
@echo WshShell.SendKeys"{ENTER}">>c:\temp.vbs
@echo WScript.Sleep 1000>>c:\temp.vbs
@call c:\temp.vbs
rem =========Yobo-lily版权=======
如果有多台机器,如何BAT处理???
好像用FOR命令,有点问题!!!
论坛跳转: