目录
SecureCRT中Script脚本使用心得
首页 php教程 php手册 SecureCRT中Script脚本使用心得

SecureCRT中Script脚本使用心得

Jun 13, 2016 am 08:40 AM
android

SecureCRT中Script脚本使用心得

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

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有较大的不同,对于界面的支持性较差。不过也有几个对话性的函数

、InputBox :提示用户输入参数

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

、输出函数 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. 循环结构

 

 

 

脚本实例

#=====================================================

# $language = "VBScript"
# $interface = "1.0"
'============================================================================================='
'    程序名称:AIX.VBS
'    程序说明:AIX主机系统配置/巡检脚本
'    作者:郑继东
'    完成时间:2008-5-7
'============================================================================================='

'============================================================================================='
'    程序全局变量区
'============================================================================================='
dim ip

'============================================================================================='
'    程序全局常量区
'============================================================================================='
' button parameter options
Const ICON_STOP = 16                 ' display the ERROR/STOP icon.
Const ICON_QUESTION = 32             ' display the '?' icon
Const ICON_WARN = 48                 ' display a '!' icon.
Const ICON_INFO= 64                  ' displays "info" icon.
Const BUTTON_OK = 0                  ' OK button only
Const BUTTON_CANCEL = 1              ' OK and Cancel buttons
Const BUTTON_ABORTRETRYIGNORE = 2    ' Abort, Retry, and Ignore buttons
Const BUTTON_YESNOCANCEL = 3         ' Yes, No, and Cancel buttons
Const BUTTON_YESNO = 4               ' Yes and No buttons
Const BUTTON_RETRYCANCEL = 5         ' Retry and Cancel buttons
Const DEFBUTTON1 = 0        ' First button is default
Const DEFBUTTON2 = 256      ' Second button is default
Const DEFBUTTON3 = 512      ' Third button is default

' Possible MessageBox() return values
Const IDOK = 1              ' OK button clicked
Const IDCANCEL = 2          ' Cancel button clicked
Const IDABORT = 3           ' Abort button clicked
Const IDRETRY = 4           ' Retry button clicked
Const IDIGNORE = 5          ' Ignore button clicked
Const IDYES = 6             ' Yes button clicked
Const IDNO = 7              ' No button clicked

'============================================================================================='
'    程序辅助函数区
'============================================================================================='

'登陆函数
Function login
    '定义IP地址,登陆用户名,密码变量
    dim    passwd
    dim username

    Dim result
    Dim flag
    flag =1
    '断开主机连接
    crt.session.Disconnect

    '开启对话框,取得IP地址,登陆用户名称,密码等变量
    ip = crt.Dialog.Prompt("请输入服务器IP地址:", "AIX", "192.1.1.207", false)
    If (Trim(ip) = "")  Or (ip = IDABORT) Then
        result = crt.Dialog.MessageBox("您没有输入登陆的IP地址,CRT将被退出!", "提示信息",ICON_INFO)
        crt.quit
    End If

    flag =1
    While flag = 1
        username = crt.Dialog.Prompt("请输入登陆用户名:", "AIX", "root", false)
        If     username = IDABORT Then
            result = crt.Dialog.MessageBox("您选择了没有输入用户名称,CRT将被推出!", "提示信息",ICON_INFO)           
            crt.quit
        End If

        If (Trim(username) = "")Then
            result = crt.Dialog.MessageBox("请输入登陆用户名称!", "提示信息",ICON_INFO)
        Else
            flag = 0
        End If
    wend

    passwd = crt.Dialog.Prompt("请输入登陆用户密码:", "AIX", "congine", true)

    '连接主机
    crt.screen.Synchronous = true
    crt.session.Connect("/telnet " & ip)
    '等待出现登陆用户名提示login,等待时间是10s
    crt.screen.WaitForString "login:"
    '输入用户名,回车
    crt.screen.send username & chr(13)

    '等待出现登陆密码提示login,等待时间是10s
    crt.screen.WaitForString "Password:"
    '输入密码,回车
    crt.screen.send passwd & chr(13)
    If crt.screen.WaitForString("invalid login name or password", 3) = True Then
        result = crt.Dialog.MessageBox("服务器登陆失败,请检查IP地址、用户名、密码是否输入正确!", "提示信息",ICON_INFO)
        crt.quit
    End If
    crt.screen.Synchronous = false
End Function

'记录当前会话日志函数
Function writelog   
    Dim result
    Dim logfilename
    Dim flag
    flag =1

    While flag =1
        logfilename = crt.Dialog.Prompt("请输入本次会话LOG文件位置", "AIX", "c:\"  & ip &".log", false)
        If Trim(logfilename) = ""  Or  (logfilename = IDABORT) then
            result = crt.Dialog.MessageBox("强烈建议保存会话日志", "提示信息",ICON_INFO)
        Else
            flag = 0
        End if
    wend
    crt.session.LogFileName = logfilename
    crt.session.Log(true)
End Function

Function  setline
    crt.screen.send chr(13) & chr(13)
'    crt.Sleep 1000
End Function

Function setcommand(cmdstr, sec)
    setline
    sec = sec * 1000
    crt.screen.send cmdstr & Chr(13)
    crt.Sleep sec
End Function

'取得服务器基本信息
Function get_machinfo

    '主机基本信息
    setcommand "hostname",1
    setcommand "prtconf |grep 'Machine Serial Number'",6
    '主机设备情况
    setcommand "lsdev -C |grep proc",2
    setcommand "lsattr -El mem0",2
    setcommand "lsdev -Cc disk",2
    setcommand "lsdev -Cc adapter",2
    setcommand "lsdev -Cc tape",2

    '主机网卡情况
    setcommand "ifconfig -a",2
    setcommand "more /etc/hosts",2

    '主机软件信息
    setcommand "uname -a ",2
    setcommand "oslevel -s",5
    setcommand "instfix -i |grep ML",10

    '主机卷组信息
    setcommand "lsvg ",2
    setcommand "lsvg -o",2
    setcommand "lsvg -l rootvg",2

    '主机文件系统信息
    setcommand "df -g ",2

    '主机日志信息
    setcommand "errpt ",2
    setcommand "errpt  -a",2
    setcommand "sysdumpdev -l ",2

    '主机系统性能
    setcommand "lsps -a",2
    setcommand "vmstat 2 10",25
    setcommand "iostat 2 10",25

End Function

'============================================================================================='
'    程序主函数(main)区
'============================================================================================='

'主函数
Sub Main
    Dim result
'    crt.screen.Synchronous = true
    '系统登陆
    login

    '写日志
    writelog

    '取得服务器信息
    get_machinfo
    result = crt.Dialog.MessageBox("信息收集完毕,是否推出CRT?", "提示信息", ICON_QUESTION Or BUTTON_YESNO Or DEFBUTTON2)
    If    result = IDYES Then
        crt.quit
    End If

    '结束会话日志
    crt.session.Log(false)
'    crt.screen.Synchronous = false
End Sub

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

新报告对传闻中的三星 Galaxy S25、Galaxy S25 Plus 和 Galaxy S25 Ultra 相机升级进行了严厉的评估 新报告对传闻中的三星 Galaxy S25、Galaxy S25 Plus 和 Galaxy S25 Ultra 相机升级进行了严厉的评估 Sep 12, 2024 pm 12:23 PM

最近几天,Ice Universe 不断披露有关 Galaxy S25 Ultra 的详细信息,人们普遍认为这款手机将是三星的下一款旗舰智能手机。除此之外,泄密者声称三星只计划升级一款相机

三星 Galaxy S25 Ultra 泄露了第一张渲染图,传闻中的设计变化被曝光 三星 Galaxy S25 Ultra 泄露了第一张渲染图,传闻中的设计变化被曝光 Sep 11, 2024 am 06:37 AM

OnLeaks 现在与 Android Headlines 合作,首次展示了 Galaxy S25 Ultra,几天前,他试图从他的 X(以前的 Twitter)粉丝那里筹集到 4,000 美元以上的资金,但失败了。对于上下文,嵌入在 h 下面的渲染图像

IFA 2024 | TCL 的 NXTPAPER 14 在性能上无法与 Galaxy Tab S10 Ultra 相媲美,但在尺寸上几乎可以与之媲美 IFA 2024 | TCL 的 NXTPAPER 14 在性能上无法与 Galaxy Tab S10 Ultra 相媲美,但在尺寸上几乎可以与之媲美 Sep 07, 2024 am 06:35 AM

除了发布两款新智能手机外,TCL 还发布了一款名为 NXTPAPER 14 的新 Android 平板电脑,其大屏幕尺寸是其卖点之一。 NXTPAPER 14 采用 TCL 标志性品牌哑光液晶面板 3.0 版本

Vivo Y300 Pro 在 7.69 毫米纤薄机身中配备 6,500 mAh 电池 Vivo Y300 Pro 在 7.69 毫米纤薄机身中配备 6,500 mAh 电池 Sep 07, 2024 am 06:39 AM

Vivo Y300 Pro刚刚全面亮相,它是最薄的中端Android手机之一,配备大电池。准确来说,这款智能手机的厚度仅为 7.69 毫米,但配备了 6,500 mAh 的电池。这与最近推出的容量相同

三星 Galaxy S24 FE 预计将以低于预期的价格推出,有四种颜色和两种内存选项 三星 Galaxy S24 FE 预计将以低于预期的价格推出,有四种颜色和两种内存选项 Sep 12, 2024 pm 09:21 PM

三星尚未就何时更新其 Fan Edition (FE) 智能手机系列提供任何提示。目前来看,Galaxy S23 FE 仍然是该公司的最新版本,于 2023 年 10 月年初推出。

新报告对传闻中的三星 Galaxy S25、Galaxy S25 Plus 和 Galaxy S25 Ultra 相机升级进行了严厉的评估 新报告对传闻中的三星 Galaxy S25、Galaxy S25 Plus 和 Galaxy S25 Ultra 相机升级进行了严厉的评估 Sep 12, 2024 pm 12:22 PM

最近几天,Ice Universe 不断披露有关 Galaxy S25 Ultra 的详细信息,人们普遍认为这款手机将是三星的下一款旗舰智能手机。除此之外,泄密者声称三星只计划升级一款相机

小米红米 Note 14 Pro Plus 上市,成为首款配备 Light Hunter 800 摄像头的高通 Snapdragon 7s Gen 3 智能手机 小米红米 Note 14 Pro Plus 上市,成为首款配备 Light Hunter 800 摄像头的高通 Snapdragon 7s Gen 3 智能手机 Sep 27, 2024 am 06:23 AM

Redmi Note 14 Pro Plus 现已正式成为去年 Redmi Note 13 Pro Plus 的直接后继产品(亚马逊售价 375 美元)。正如预期的那样,Redmi Note 14 Pro Plus与Redmi Note 14和Redmi Note 14 Pro一起成为Redmi Note 14系列的主角。李

iQOO Z9 Turbo Plus:可能增强的系列旗舰产品已开始预订 iQOO Z9 Turbo Plus:可能增强的系列旗舰产品已开始预订 Sep 10, 2024 am 06:45 AM

OnePlus的姐妹品牌iQOO的2023-4年产品周期可能即将结束;尽管如此,该品牌已宣布 Z9 系列的开发尚未结束。它的最终版,也可能是最高端的 Turbo+ 变体刚刚按照预测发布。时间

See all articles