在SecureCRT里,crt.Screen应该是用得比较多,很多操作都是基于屏幕的返回内容,来进一步决定接下来的操作。
Screen屏幕返回内容判断
在判断屏幕返回内容的函数里,主要用到的是两个:
- crt.Screen.WaitForString("KeyString",timeout)
- crt.Screen.WaitForStrings("KeyString1","KeyString2",...,timeout)
1、WaitForString(单字符) 分析:
第一个函数是单字符串判断,KeyString是需要查找的关键字,timeout是一个超时阀值。
例如:
crt.Screen.WaitForString("Username:",5)
代码的意思是,如果在5秒内没有检测到“Username:”的出现,就会执行下一条语句,
不是设置超时阀值:
crt.Screen.WaitForString("Username:")
这样就会一直等到Username:的出现,才会执行下一行代码。
WaitForString函数是有返回值的(True 或者 False)。因此,可以根据返回值进行条件判断以确定一下条代码。例如:
If (crt.Screen.WaitForString ("port state : UP",1) <> False) Then
status="UP"
Else
status="Down"
End If
这段代码可以用来判断端口状态情况并记录下来。
2、WaitForString(多字符)
第二个函数用于多个字符串的判断,timeout的作用是一样的。例如:
crt.Screen.WaitForStrings("cisco","huawei","h3c",5)
意思是如果在5秒内有检测到相应的字符(cisco,huawei,h3c)时,返回相应的索引号(索引号是从1开始的)。如果都没有检查到,则返回0。因此,该函数的使用可以如下:
Dim SwitchType
SwitchType=crt.Screen.WaitForStrings("cisco","huawei","h3c",5)
Select case SwitchType
case 1
MsgBox "思科设备"
case 2
MsgBox "华为设备"
case 3
MsgBox "华三设备"
case else
MsgBox "未知设备"
End Select