Board logo

标题: [网络连接] 批处理如何将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
  1. @echo off
  2. chcp 437 >nul
  3. graftabl 936>nul
  4. telnet <auto.txt
  5. call getdoce.bat
复制代码
存为:auto.txt
  1. open IP地址
  2. 密码
  3. en
  4. 密码
  5. q
复制代码
存为: getdoce.bat
  1. @echo off
  2. goto :begin
  3. f 100 l14 B8 00 B8 50 1F BF 00 02 B9 D0 07 BD 02 08 BA 50 00 AD 3C 20
  4. f 114 l14 75 03 43 75 02 31 DB AA 4A 75 0D B8 0D 0A 29 DF 29 DD 31 DB
  5. f 128 l0e AB BA 50 00 E2 E3 06 1F 89 E9 31 DB 90 90
  6. t=100
  7. g 134
  8. w 200
  9. q
  10. :begin
  11. if '%1'=='' set of=abcec.txt
  12. debug %1%of%<%~f0>nul
  13. start notepad %1%of%
  14. goto :eof
  15. ::DOS下保存整个屏幕内容到文件,不支持中文(即图型模式)
  16. ::可用于纯dos模式
  17. ::在图型模式将输出一个只有空行的文件
  18. ::用debug 取显示缓存区内容。输出%1指定的文件,
  19. ::如果%1为空,输出到abcec.txt
  20. ::用在程序输出有进度显示时,得到的最终屏幕信息
  21. ::注意:本函数调用必独立存为一个BAT文件调用,不可以放在BAT程序内作子程序。
  22. ::行 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