Board logo

标题: 请教一个dos下自动telnet的批处理问题 [打印本页]

作者: wuwen624     时间: 2007-6-21 13:19    标题: 请教一个dos下自动telnet的批处理问题

想写一个可以自动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登陆脚本,先谢谢了!
作者: zasxcdfv     时间: 2007-6-21 13:44    标题: 网上找的

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版权=======
作者: HAT     时间: 2007-6-21 16:21
发个我自己用的
CODE:  [Copy to clipboard]
@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

作者: zasxcdfv     时间: 2007-6-21 16:29


  Quote:
Originally posted by HAT at 2007-6-21 04:21 PM:
发个我自己用的
[code]
@echo off
rem 假设服务器地址为aaa
rem 假设用户名为bbb
rem 假设密码为ccc
echo Set WshShell = CreateObject("WScript.Shell")>%tmp%\Te ...

学习~
作者: wuwen624     时间: 2007-6-24 10:35
看来解决的办法好像没有纯命令行的方式,谢谢各位的帮助
作者: wuwen624     时间: 2007-6-24 10:40
我试验了一下,确实可以登录到服务器了,但是我的问题是,登录到服务器后要实行服务器上的一些脚本或者命令然后返回,能不能请大家再帮忙以下,说明一下在类似楼上两位提供的脚本中,该怎么自动调用服务器段的命令或者是程序呢?谢谢了
作者: bob1989     时间: 2007-6-24 11:19
他们都是用控制键盘输入达到目的的
要是服务器卡一下就会出错的啊``

其实这个问题我也想了很久```
现在还没解决``
呵呵 ` `
作者: HAT     时间: 2007-6-24 16:02
//但是我的问题是,登录到服务器后要实行服务器上的一些脚本或者命令然后返回

可以在登陆之后执行脚本或者命令的
只需在用户名和密码后面继续SendKeys就行了
作者: duanml     时间: 2007-6-24 20:01
1000 就够了吗?

起码5000 吧?

这个也只能在有正常位置cmd的上,很多时候cmd不放在默认和被path目录里的。而且不是nt系列的就没用了,用command的也没用的。
作者: HAT     时间: 2007-6-25 12:44
send username的时候我用的5000
send password的时候用的1000
这样的搭配在我用过的7台unix server上表现良好
作者: 176557234     时间: 2009-2-23 12:39    标题: 你的有一段 TELNET代码我看见了 想请教

你的有一段 TELNET代码我看见了  想请教  我的QQ176557234
作者: everest79     时间: 2009-2-23 19:24
非人工登录可以使用WSH中的Exec方法,通过对status\stdin\stdout属性的控制达到无错自动化执行的要求
作者: laopo     时间: 2009-2-24 15:33
学习学习一下
作者: xycoordinate     时间: 2009-7-7 03:38


  Quote:
Originally posted by everest79 at 2009-2-23 19:24:
非人工登录可以使用WSH中的Exec方法,通过对status\stdin\stdout属性的控制达到无错自动化执行的要求



具体是怎么样的?
作者: xycoordinate     时间: 2009-7-8 22:45


  Quote:
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命令,有点问题!!!
作者: xycoordinate     时间: 2009-7-10 05:41
http://www.cn-dos.net/forum/view ... id=TnpprF#pid337287




欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/) Powered by Discuz! 2.5