因为工作需要,需对大量交换机进行配置,比如我有二十台交换机,每一个交换机都需要一系列不一样的配置,我的思路是将这二十台交换机ip地址放入”ip.txt"当中,另外分别制作二十套具体的配置命令保存在一个txt文档里面并且用分隔符做成二十个段落,当执行批处理文件的时候每扫描一个ip之后读取指定的一段内容写入到临时的vbs文件当中、运行vbs脚本即可对该交换机进行配置,完成之后删除临时vbs脚本、扫描下一个ip,这个时候又从配置命令文档里面读取相应的段落写入临时vbs脚本文件、再执行,如此循环。或者我直接制作二十个vbs脚本,每扫描一个ip之后调用一个对应的vbs脚本文件进行执行。
我现在已经有一段代码(附在帖子最后),代码利用for循环实现对“ip.txt"文件当中的交换机列表按顺序读取,读取之后利用%%i变量将扫描到的ip以及对它的telnet命令写入临时vbs脚本实现telnet连接,另外制作交换机的具体配置命令保存在1.vbs当中,telnet连接交换机之后再调用这个脚本即可对交换机实现一系列的配置命令。但是这个小程序只能实现对列表当中的所有交换机进行相同的配置,而我现在需要对交换机进行不同配置
请大家帮忙,我应该怎样修改这个批处理程序才能实现我想要的功能?谢谢- @echo off
- :wait
- set a=
- set/p a=输入S开始配置:
- if %a%==s goto :startconf
- if %a%==q goto :end
- goto :wait
- :startconf
- echo 交换机配置结果:>>配置结果.txt
- for /f %%i in (ip.txt) do echo 正在扫描 %%i && echo 请等待........&& ping -n 1 -w 2 %%i -n 2|find "TTL">nul && echo 扫描%%i完成,正在执行配置工作... && echo set sh=WScript.CreateObject("WScript.Shell") >telnet_tmp.vbs && echo WScript.Sleep 300 >>telnet_tmp.vbs && echo sh.SendKeys "open %%i" >>telnet_tmp.vbs && echo WScript.Sleep 1000 …… && echo sh.SendKeys "{ENTER}">>telnet_tmp.vbs && echo WScript.Sleep 1000 ……&& start telnet && cscript //nologo telnet_tmp.vbs && cscript //nologo 1.vbs && del telnet_tmp.vbs && set /a count+=1 && echo %%i配置成功 && echo %%i配置成功>>配置结果.txt
-
- echo ----------------结果说明---------------
- echo 配置完毕!
- echo 共配置可以联通的交换机:%count%台。
- echo 配置的结果保存在当前目录的“配置结果.txt”中。
- echo ---------------------------------------
- echo 按任意键返回主菜单
- pause>nul
- goto :wait
- :end
复制代码
|