中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-07-07 20:32
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教一个dos下自动telnet的批处理问题 查看 2,434 回复 15
楼 主 请教一个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命令,有点问题!!!
论坛跳转: