secureCRT VBS脚本语法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
常用语句:
1.CRT命令
‘发送命令
crt.Screen.Send “whyy@dsl-vty” & chr(13)
‘等待字符串出现
crt.Screen.WaitForString “Password:”
‘等待字符串出现,等待1秒钟
crt.Screen.WaitForString (“Password:”,1)
‘开启同步
crt.Screen.Synchronous = True
‘判断指针1秒内不移动,用于确定安全连接可以进行后续代码输入操作
Do
bCursorMoved = crt.Screen.WaitForCursor(1)
Loop until bCursorMoved = False
‘判定是否已经连接到设备
if crt.Session.Connected = true then
‘断开连接
crt.session.disConnect
‘激活窗口用于多tab页面
crt.Activate
‘连接到指定设备
crt.session.Connect(“/telnet ” & b(n))
‘延时1秒
crt.Sleep 1000
2.vbScript语句
a.文件操作
Set fso = CreateObject(“Scripting.FileSystemObject”) ‘创建文件对象
Set file1 = fso.OpenTextFile(“c:\test.txt”,1, False) ‘设置文件对象1 只读模式;2 写模式;8 在文件末尾进行写操作
objFso.FileExists(“文件路径”) ‘判定文件是否存在,存在返回trus,否则返回false
file1.AtEndOfStream <> True ‘如果文件末尾无数据返回true,否则返回false
line = file1.ReadLine ‘读取第一行文本数据,并将读取位移动到下一行
params = Split (line) ‘分割读取的行数据,用空格符分割
file1.Close ‘关闭文件
b.系统文档操作
‘创建shell对象,对系统特殊文档操作
Set objShell = CreateObject(“WScript.Shell”)
‘返回”我的文档”的路径给变量szMyDocs,可以动态的返回”我的文档”的路径
szMyDocs = objShell.SpecialFolders(“MyDocuments”)
‘设置文件路径到变量中
szSessionsFile = szMyDocs & “\SessionList.txt”
3.知识点
(1)判断文件是否存在
if Not objFso.FileExists(szSessionsFile) then ‘如果txt文件不存在,就报错并退出sub
crt.Dialog.MessageBox “Session list file not found:” & vbcrlf & vbcrlf & szSessionsFile & vbcrlf & vbcrlf & “Create a s ession list file as describ ed in the description of ” & “this script code and then run the script again.”
exit sub
end if
(2)容错机制
On Error Resume Next ‘后面代码错误会继续执行
crt.Session.Connect “/telnet ” & vSe ssionsArray(0)
szError = Err.Description ‘将错误表述信息放入变量szError中
On Error Goto 0 ‘关闭容错机制
(3)判断是否安全连接
‘判断是否连接正常
if crt.Session.Connected then
crt.Screen.Synchronous = True ‘同步显示
‘第一次连接时的安全检测
Do
bCursorMoved = crt.Screen.WaitForCursor(1)
Loop until bCursorMoved = False
’ 一旦光标在一秒内停止移动,我们就认为他已经安全的连接上了远程设备
end if
(4)安全关闭连接
’ 断开连接
crt.session.disconnect
’ 等待连接关闭
Do
crt.Sleep 100
Loop While crt.Session.Connected = True ‘每100毫秒判断连接是否断开
(5)说明:
1.CRT默认tab的index为1
2.要创建第二个标签页tab,必须使用函数set newtab = objCurrentTab1.Clone()复制标签页为新的tab页面否则报错tab 2 超出index范围rang
函数:
Set objCurrentTab1 = crt.GetTab(1) ‘创建标签页1
objCurrentTab1.session.disConnect ‘断开标签页1的当前连接
objCurrentTab1.Activate ‘激活标签页1
objCurrentTab1.session.Connect(“/telnet 172.16.205.1” ) ‘标签页1连接设备172.16.205.1
set newtab = objCurrentTab1.Clone() ‘复制标签页1到新标签页
示例:
【示例一】
$language = "VBScript"
$interface = "1.0"
'本脚本示范:自动登录到某台3550交换机设备,自动输入远程登录密码,同时自动进入特权模式
'自动输入特权密码,同时运行show version命令
Sub Main
crt.Screen.Synchronous = True
'通过telnet连接到192.168.1.1
crt.Session.Connect "/TELNET 192.168.1.1"
crt.Screen.WaitForString "Password:"
crt.Screen.Send "cisco" & vbCr
crt.Screen.waitForString ">"
crt.Screen.Send "enable" & vbcr
crt.Screen.WaitForString "Password:"
crt.Screen.Send "cisco" & vbcr
crt.Screen.waitForString "#"
crt.Screen.Send "show version" & vbcr
crt.Screen.waitForString "--More--"