VBScript之SecureCRT自动重启设备脚本

1 篇文章 0 订阅
1 篇文章 0 订阅

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

SecureCRT软件运行的vbs脚本:根据条件判断自动重启设备,并记录挂机测试结果,记录日志。

一、常见问题与解决办法

'记录如下:
'1.编辑工具是Notepad++,写完代码之后保存为.vbs的后缀即可。但是运行的时候却报未结束的字符串常量”的错误。
'将默认的字符编码UTF-8修改为 ANSI编码 即可
'2.crt.Screen.Synchronous 设置为执行同步时,会大概率使CRT卡顿(已知BUG)
'设置False即可
'3.文件操作set f=fso.opentextfile(“d:\a.txt”,2,true) :f.write “写入内容” :f.close
'4.连接串口时会出错RPCv2 client: connect be refused RPCv2 client: cleanup
'开启会话选项:勾选发送协议NO-OP
'5.向当前窗口发送按键,包含组合按键crt.Screen.SendKeys(“参数”)
'可借鉴:https://www.cnblogs.com/OnOwnRoad/p/4963969.html
'6.在脚本中使用WaitForString、WaitForStrings或ReadString函数时,可能存在CRT终端丢失一部分数据的现象,即不能及时显示(已知BUG)
'尽量不用WaitForString等,调好流程,直接发送命令即可
’7.若需要记录SecureCRT打印内容的日志,可在该软件设置日志文件输出。
'[%Y_%M:%D_%h:%m:%s]表示:在日志文件的每行打印出时间戳
在这里插入图片描述

二、源代码

代码如下(示例):

#$language = "VBScript"
#$interface = "1.0"

crt.Screen.Synchronous = False	

' This automatically generated script may need to be
' edited in order to work correctly.

dim str,result,Currentdate,CurrentTime,i,timestr
dim fso,testfile
set fso = createobject("scripting.filesystemobject")  '指明一个对象
set testfile = fso.createtextfile("C:\Users\Administrator\Desktop\xshell\LOG\vbstxt\reboot_log.txt",true) '指明创建目录和文件类型

str="     test result: "
result="OK!"
i=1000	
const strif1= "7     100fdx  100fdx    100FX"
const strif2= "9     100fdx  100fdx    100FX"
Sub Main

do until i=0
	crt.Session.Disconnect
    'crt.Session.Connect("/SERIAL COM3")			//也可使用串口建立连接
	crt.Session.Connect("/TELNET 10.11.13.98")
	crt.Screen.Synchronous = False
	crt.Sleep 1000
	crt.Screen.Send chr(13)
    crt.Screen.WaitForString "Username:"
	crt.Screen.Send chr(13)
	crt.Screen.Send "guest" & chr(13)
	crt.Screen.WaitForString "Password:"
	crt.Sleep 1000
	crt.Screen.Send chr(13)
	crt.Screen.Send "sys" & chr(13)
	crt.Screen.Send "_bcm" & chr(13)
	crt.Screen.WaitForString "BCM.0>"
	crt.Screen.Send "port mode" & chr(13)
	Currentdate=date()
	CurrentTime=Hour(Now)&":"&Minute(Now)&":"&Second(Now)
	timestr = "    time:"	&	Currentdate & "  " & CurrentTime
	If (crt.Screen.WaitForString (strif1,3)<>True) and (crt.Screen.WaitForString (strif1,3)<>True) Then		'3:表示等待超时时间为3s
		result="ERRON!"	
		Exit Do	
	end if
	result="OK"
   'crt.Screen.WaitForString "BCM.0>"
   crt.Screen.Send "exit" 
   crt.Screen.SendKeys("{ENTER}")
   crt.Sleep 1000
   'crt.Screen.WaitForString "]"
   crt.Screen.Send "quit" 
   crt.Screen.SendKeys("{ENTER}")
   crt.Sleep 1000
   'crt.Screen.WaitForString "<PT_504iAD>"
   crt.Screen.Send "dis switchover state" & chr(13)
   crt.Sleep 3000
   crt.Screen.Send "reboot"
   crt.Screen.SendKeys("{ENTER}")
   crt.Sleep 3000
   crt.Screen.Send "y" 
   crt.Screen.SendKeys("{ENTER}")
   crt.Sleep 3000
   crt.Screen.Send "y" 
   crt.Screen.SendKeys("{ENTER}")
   crt.Sleep 1000
   crt.Session.Disconnect
   i = i - 1
   testfile.writeline("Number of restarts: "&(1000-i)& str & result & timestr & chr(13))  
   crt.Sleep 166000
	
loop
	
	testfile.writeline("Number of restarts: "&(1000-i)& str & result & timestr & chr(13)) 
	testfile.close
	crt.Screen.Synchronous = False
	msgbox (result & chr(13) & "reboot:" & (1000-i) & chr(13) &	"time:"	&	Currentdate & "  " & CurrentTime)
	
End Sub

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值