标题: [网络连接] 批处理如何将telnet下屏显内容自动复制到txt文本中? [打印本页]
作者: kongfangxiong 时间: 2009-7-16 22:33 标题: 批处理如何将telnet下屏显内容自动复制到txt文本中?
如题。比如,我telnet到交换机上,想将show run下显示的内容复制到指定txt文件中,谢谢了。
作者: Lumiere 时间: 2009-7-16 23:06
这个命令不熟悉。应该用重定向到文本文件可以实现的吧
作者: kongfangxiong 时间: 2009-7-16 23:25
show run命令只是交换机中的一个基本命令,它的作用是显示当前运行交换机的配置情况,我的目的就是想将show run 命令下显示的内容保存到指定文件中。
作者: lovelymorning 时间: 2009-7-16 23:29
cmd,估计干不了这活。。除非,有什么命令行工具,让它有这功能。。。。
建议用 crt,配合vbs脚本。。实现自动化处理这些东西。。。更方便
作者: kongfangxiong 时间: 2009-7-16 23:33
@echo off
echo set sh=WScript.CreateObject("WScript.Shell") >telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "open 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 "en{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
上述批处理可以正常登陆交换机,但不知道应该怎么写才能达到自己的要求。
作者: Lumiere 时间: 2009-7-17 08:25
呵呵,你的级别应该比我高,懂交换机还会VBscript。小菜我无能为力啦
作者: keen 时间: 2009-7-17 13:38 标题: 回复 1楼 的帖子
telnet链接到交换机后,用show run命令查看信息。
telnet是可以在电脑中运行的命令,show run是在交换机操作系统支持下的命令。
所以说在电脑中的>或>>重定向命令,在交换机操作系统可能不支持。
就是VBS也是基于WINDOWS操作系统,而交换机有自己独立的操作系统。
你一定要弄清楚这个概念。
作者: microro 时间: 2009-7-17 15:15 标题: 新来的
不知道是不是这样呢;
show run >>run.txt
作者: inittab 时间: 2009-7-17 16:09
7楼说的对,这个问题不是用vb 或bat 的问题,那个能那个不能的问题。
而是汲及到两个操作系统, telnet 是windows命令,运行它的时候还处于windows状态,归windows 管。
telnet 上去了以后就变了。此时是交换机里边的操作系统,可能是linux,也可能是其他系统。只能使用交换机自己提供的命令比如shou run, show interface 等,它不归windows管。即使交换机系统也提供> >>run.txt支持,但run.txt 也是保存在交换机的空间里,而不是你自己的电脑硬盘上。
如果某个子程序可以 telnet 上去以后自动处理生成,并且结果返回并退出到windows ,
然后就bat 调用它。也许可以完成所需功能。
[ 本帖最后由 inittab 于 2009-7-17 16:17 编辑 ]
作者: netbenton 时间: 2009-7-17 18:52
如果输出内容一屏可以显示完的话,试下这个看:
存为: main.bat- @echo off
- chcp 437 >nul
- graftabl 936>nul
- telnet <auto.txt
- call getdoce.bat
复制代码
存为:auto.txt复制代码
存为: getdoce.bat-
- @echo off
- goto :begin
- f 100 l14 B8 00 B8 50 1F BF 00 02 B9 D0 07 BD 02 08 BA 50 00 AD 3C 20
- f 114 l14 75 03 43 75 02 31 DB AA 4A 75 0D B8 0D 0A 29 DF 29 DD 31 DB
- f 128 l0e AB BA 50 00 E2 E3 06 1F 89 E9 31 DB 90 90
- t=100
- g 134
- w 200
- q
- :begin
- if '%1'=='' set of=abcec.txt
- debug %1%of%<%~f0>nul
- start notepad %1%of%
- goto :eof
-
- ::DOS下保存整个屏幕内容到文件,不支持中文(即图型模式)
- ::可用于纯dos模式
- ::在图型模式将输出一个只有空行的文件
- ::用debug 取显示缓存区内容。输出%1指定的文件,
- ::如果%1为空,输出到abcec.txt
- ::用在程序输出有进度显示时,得到的最终屏幕信息
-
- ::注意:本函数调用必独立存为一个BAT文件调用,不可以放在BAT程序内作子程序。
- ::行 start notepad %1%of% 用作测试显示结果,用时可删除
复制代码
[ 本帖最后由 netbenton 于 2009-7-17 19:13 编辑 ]
作者: ccccpp 时间: 2011-9-6 17:28
呵呵,终于找到我的问题的相同贴了,可惜还不能解决问题
作者: qiao849 时间: 2012-2-15 21:43
登录单台交换机,5楼的做法就可以了,你可以试下。不过如果要登录多台的话就比较麻烦
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |