关于SecureCRT的VBScript脚本使用心的 (转)

在SecureCRT中使用VBSCRIPT脚本,确实能够提高我们的工作效率,并且可以实现完全的自动化。

我是一个懒人,但是是有规则的懒人,我讨厌那些动辄拿着使用abc变量说事情的懒人,因为那样他没有规范,以为别人都像他一样,其实不然,每个人都有创造的活力,每个人都有创造的潜力。

好了,废话不多说了,记点实在的吧。

-------------------------------------------------------------------------------------------

基础知识:(转自http://studyce.blog.51cto.com/1332032/285621)

SecureCRT给我们提供了很好的平台——脚本工具制作和运行。下面就SecureCRT工具常用到的几个函数阐述如下:

     1. 在SecureCRT里,用得最多的应该就是crt.Screen,基本上很多操作都是基于屏幕的返回字来决定下一步该作何操作:

(1):crt.Screen.WaitForString("KeyString",timewaiting)

该函数是单字符串判断,KeyString是需要查找的关键字,timewaiting是一个超时阀值,例如:crt.Screen.WaitForString("people:",5)该行代码的意思就是在5秒内没有检测到people:出现,就执行下一条语句,如果改成:crt.Screen.WaitForString("people:")那就是指直到people:出现才执行下一行代码。

WaitForString是有返回值的,返回值是True 或者 False。因此,可以根据返回值进行条件判断以确定一下条代码。例如:

If (crt.Screen.WaitForString ("current state : UP",1)<>False) Then portStatus="PortUP" Else portStatus="PortDown" End If

msgbox portStatus

这段代码用于判断端口状态情况并记录下来.

 

(2):crt.Screen.WaitForStrings("KeyString1","KeyString2",...,timeout)

用于多个字符串的判断,timeout的作用是一样的。例如:

crt.Screen.WaitForStrings("cisco","huawei","H3C",5)

意思就是在5秒内有检测到相应的字符时,返回相应的索引号(索引号是从1开始的)。如果都没有检查到,则返回0.因此,该函数的使用可以如下:

Dim SwitchKey

SwitchKey=crt.Screen.WaitForStrings("cisco","huawei","H3C",5)

Select case SwitchKey

case 1

MsgBox "思科设备"

case 2

MsgBox "华为设备"

case 3

MsgBox "华三设备"

case else

MsgBox "未知设备"

End Select

 

(3) 其实SecureCRT支持的脚本语言就是VBS,这个脚本语言与VB有较大的不同,对于界面的支持性较差。不过也有几个对话性的函数

 

<1>、InputBox :提示用户输入参数

temp = inputbox("提示用户你输入参数的名称","对话框的名称") :需要将输入的参数赋值给某一个参数进行使用。

 

<2>、输出函数 msgbox

msgbox “给用户输出的信息对话框”

eg.求正方形面积的脚本

dim r,s r=inputbox("请输入正方形的边长:","求正方形面积的程序") s=r*r msgbox(s)

 

-------------------------------------------------------------------------------------------

语句结构:

1. 顺序执行的脚本,举个网上泛滥的例子,那个自动登录系统的例子,稍加修改如下。

# $language = "VBScript"

# $interface = "1.0"

Sub Main

'连接主机192.168.0.2

crt.session.Connect("/telnet 192.168.0.2")

'等待出现登陆用户名提示login,等待时间是10s

crt.screen.WaitForString "login:",10

'输入用户名,回车

crt.screen.send "minico" & Chr(13)

'等待出现登陆密码提示login,等待时间是10s

crt.screen.WaitForString "Password:",10

'输入密码,回车

crt.screen.send "123456"

crt.screen.send Chr(13) End Sub

2. 选择结构的脚本

if 

...

then 

...

else

...结构和case结构见基础知识举例

3. 循环结构 

posted @ 2015-11-30 16:43  hbg-rohens  阅读(3050)  评论(0)    收藏  举报