用vbs对telnet进行批处理操作的问题~~~(已完成一半) 10
因为网络工程的实施过程中,需要对大量的设备进行配置,以及工程结束时对大量设备进行配置备份。因此想做一个批处理工具自动telnet。目前,结合百度搜索的结果,已经完成了以下...
因为网络工程的实施过程中,需要对大量的设备进行配置,以及工程结束时对大量设备进行配置备份。因此想做一个批处理工具自动telnet。
目前,结合百度搜索的结果,已经完成了以下功能:、
1、通过bat文件自动生成vbs文件
2、运行vbs文件以后,自动telnet设备,并输入准备好的命令。可以配置,也可以备份配置。
代码如下:
1、bat文件的代码:
@del .\temp.vbs
@echo on error resume next >>.\temp.vbs
@echo dim WshShell>>.\temp.vbs
@echo Set WshShell = WScript.CreateObject("WScript.Shell")>>.\temp.vbs
@echo WshShell.run"cmd">>.\temp.vbs
@echo WshShell.AppActivate".\windows\system32\cmd.exe">>.\temp.vbs
@echo WScript.Sleep 200>>.\temp.vbs
@echo WshShell.SendKeys"telnet 192.168.1.2">>.\temp.vbs
@echo WshShell.SendKeys"{ENTER}">>.\temp.vbs
@echo WScript.Sleep 100>>.\temp.vbs
@echo WshShell.AppActivate"telnet.exe ">>.\temp.vbs
@echo WScript.Sleep 1000>>.\temp.vbs
for /f "tokens=1 delims=" %%a in ('type .\input.txt') do (@echo WshShell.SendKeys"%%a" >>.\temp.vbs)&(@echo WshShell.SendKeys"{ENTER}">>.\temp.vbs)&(@echo WScript.Sleep 1000>>.\temp.vbs)
@call .\temp.vbs>>.\temp1.txt
2、生成的vbs的代码:
on error resume next
dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.run"cmd"
WshShell.AppActivate".\windows\system32\cmd.exe"
WScript.Sleep 200
WshShell.SendKeys"telnet 192.168.1.2"
WshShell.SendKeys"{ENTER}"
WScript.Sleep 100
WshShell.AppActivate"telnet.exe "
WScript.Sleep 1000
WshShell.SendKeys"cisco"
WshShell.SendKeys"{ENTER}"
WScript.Sleep 1000
WshShell.SendKeys"en"
WshShell.SendKeys"{ENTER}"
WScript.Sleep 1000
WshShell.SendKeys"cisco"
WshShell.SendKeys"{ENTER}"
WScript.Sleep 1000
WshShell.SendKeys"show ip int br"
WshShell.SendKeys"{ENTER}"
WScript.Sleep 1000
WshShell.SendKeys"conf t"
WshShell.SendKeys"{ENTER}"
WScript.Sleep 1000
WshShell.SendKeys"exit"
WshShell.SendKeys"{ENTER}"
WScript.Sleep 1000
WshShell.SendKeys"exit"
WshShell.SendKeys"{ENTER}"
WScript.Sleep 1000
3、我测试用的txt文本
cisco
en
cisco
show ip int br
conf t
exit
exit
在使用时,只需要将txt文本拖动到bat文件的图标上即可。
遗留问题:
1、生成的vbs代码中,一个命令输出完以后无法根据网络设备返回的命令结果进行下一步配置,而是通过sleep的等待时间来进行下一步配置。这样对于某些需要执行很久的命令就不兼容。最好能有类似WaitForString或者Experts 之类的方法,等待返回结果后再输入下一个命令。
2、现有的vbs代码,无法记录整个批处理的执行过程。只能在结束后,通过tftp把配置文件考下来比对。不方便,也不放心。
希望大家能够帮忙解决。
看来还真是没有人回答。这个问题这么难么?
应该不会吧 展开
目前,结合百度搜索的结果,已经完成了以下功能:、
1、通过bat文件自动生成vbs文件
2、运行vbs文件以后,自动telnet设备,并输入准备好的命令。可以配置,也可以备份配置。
代码如下:
1、bat文件的代码:
@del .\temp.vbs
@echo on error resume next >>.\temp.vbs
@echo dim WshShell>>.\temp.vbs
@echo Set WshShell = WScript.CreateObject("WScript.Shell")>>.\temp.vbs
@echo WshShell.run"cmd">>.\temp.vbs
@echo WshShell.AppActivate".\windows\system32\cmd.exe">>.\temp.vbs
@echo WScript.Sleep 200>>.\temp.vbs
@echo WshShell.SendKeys"telnet 192.168.1.2">>.\temp.vbs
@echo WshShell.SendKeys"{ENTER}">>.\temp.vbs
@echo WScript.Sleep 100>>.\temp.vbs
@echo WshShell.AppActivate"telnet.exe ">>.\temp.vbs
@echo WScript.Sleep 1000>>.\temp.vbs
for /f "tokens=1 delims=" %%a in ('type .\input.txt') do (@echo WshShell.SendKeys"%%a" >>.\temp.vbs)&(@echo WshShell.SendKeys"{ENTER}">>.\temp.vbs)&(@echo WScript.Sleep 1000>>.\temp.vbs)
@call .\temp.vbs>>.\temp1.txt
2、生成的vbs的代码:
on error resume next
dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.run"cmd"
WshShell.AppActivate".\windows\system32\cmd.exe"
WScript.Sleep 200
WshShell.SendKeys"telnet 192.168.1.2"
WshShell.SendKeys"{ENTER}"
WScript.Sleep 100
WshShell.AppActivate"telnet.exe "
WScript.Sleep 1000
WshShell.SendKeys"cisco"
WshShell.SendKeys"{ENTER}"
WScript.Sleep 1000
WshShell.SendKeys"en"
WshShell.SendKeys"{ENTER}"
WScript.Sleep 1000
WshShell.SendKeys"cisco"
WshShell.SendKeys"{ENTER}"
WScript.Sleep 1000
WshShell.SendKeys"show ip int br"
WshShell.SendKeys"{ENTER}"
WScript.Sleep 1000
WshShell.SendKeys"conf t"
WshShell.SendKeys"{ENTER}"
WScript.Sleep 1000
WshShell.SendKeys"exit"
WshShell.SendKeys"{ENTER}"
WScript.Sleep 1000
WshShell.SendKeys"exit"
WshShell.SendKeys"{ENTER}"
WScript.Sleep 1000
3、我测试用的txt文本
cisco
en
cisco
show ip int br
conf t
exit
exit
在使用时,只需要将txt文本拖动到bat文件的图标上即可。
遗留问题:
1、生成的vbs代码中,一个命令输出完以后无法根据网络设备返回的命令结果进行下一步配置,而是通过sleep的等待时间来进行下一步配置。这样对于某些需要执行很久的命令就不兼容。最好能有类似WaitForString或者Experts 之类的方法,等待返回结果后再输入下一个命令。
2、现有的vbs代码,无法记录整个批处理的执行过程。只能在结束后,通过tftp把配置文件考下来比对。不方便,也不放心。
希望大家能够帮忙解决。
看来还真是没有人回答。这个问题这么难么?
应该不会吧 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询