secureCRT脚本----vbs语法

常用语句:

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 session list file as described 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 ” & vSessionsArray(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--"
  crt.Screen.Send " "
  crt.Screen.Synchronous = False
End Sub

【示例二】

 $language = "VBScript"
 $interface = "1.0"
'本脚本示范:从一个文件里面自动读取设备IP地址,密码等,自动将设备配置备份

Sub Main
    '打开保存设备管理地址以及密码的文件
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Dim fso,file1,line,str1,params
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set file1 = fso.OpenTextFile("d:\config.txt",Forreading, False)        
    crt.Screen.Synchronous = True
    DO While file1.AtEndOfStream <> True
       '读出每行
       line = file1.ReadLine
       '分离每行的参数 IP地址 密码 En密码
       params = Split (line)
       'Telnet到这个设备上
       crt.Session.Connect "/TELNET " & params(0)
       '输入telnet密码
       crt.Screen.WaitForString "Password:"
       crt.Screen.Send params(1) & vbcr
       '进特权模式
       crt.Screen.Send "enable" & vbcr
       crt.Screen.WaitForString "Password:"
       crt.Screen.Send params(2) & vbcr
       crt.Screen.waitForString "#"
        '备份目前Startup配置
       str1 = "copy startup tftp://192.168.1.2/"
       str1 = str1 & "backup(" & params(0) &")" & ".cfg"
       crt.Screen.Send str1 & vbcr
       crt.Screen.WaitForString "]?"
       crt.Screen.Send vbcr
       crt.Screen.WaitForString "]?"
       crt.Screen.Send vbcr
       '备份完成后退出
       crt.Screen.waitForString "#",3
       crt.Session.Disconnect

       loop
    crt.Screen.Synchronous = False           
End Sub

config.txt文本文件为事先编辑好的
格式如:
192.168.1.1 cisco cisco
192.168.1.254 cisco cisco
前面是IP地址,后面是telnet密码,最后是enable密码

Sub Main
    '打开保存设备管理地址以及密码的文件
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Dim fso,file1,line,str1,params
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set file1 = fso.OpenTextFile("d:\config.txt",Forreading, False)        
    crt.Screen.Synchronous = True
    DO While file1.AtEndOfStream <> True
       '读出每行
       line = file1.ReadLine
       '分离每行的参数 IP地址 密码 En密码
       params = Split (line)
       'Telnet到这个设备上
       crt.Session.Connect "/TELNET " & params(0)
       '输入telnet密码
       crt.Screen.WaitForString "Password:"
       crt.Screen.Send params(1) & vbcr
       '进特权模式
       crt.Screen.Send "enable" & vbcr
       crt.Screen.WaitForString "Password:"
       crt.Screen.Send params(2) & vbcr
       crt.Screen.waitForString "#"
        '备份目前Startup配置
       str1 = "copy startup tftp://192.168.1.2/"
       str1 = str1 & "backup(" & params(0) &")" & ".cfg"
       crt.Screen.Send str1 & vbcr
       crt.Screen.WaitForString "]?"
       crt.Screen.Send vbcr
       crt.Screen.WaitForString "]?"
       crt.Screen.Send vbcr
       '备份完成后退出
       crt.Screen.waitForString "#",3
       crt.Session.Disconnect

       loop
    crt.Screen.Synchronous = False           
End Sub

【示例三】
批量添加静态arp:

Sub Main
  Const ForReading = 1
  Dim fso,file,line
  set fso = CreateObject("Scripting.FileSystemObject")
  set file = fso.OpenTextFile("arp.txt",ForReading,False)
  crt.Screen.Synchronous = True
  DO While file.AtEndOfStream <> True
  line = file.ReadLine
  crt.Screen.Send line & vbcr
  crt.Sleep 100
  loop
  crt.Screen.Synchronous = False
End Sub

arp.txt如下:

arp static ip 12.1.1.025 mac 00:24:93:01:73:18 interface ethernet 0/0/1
arp static ip 12.1.1.026 mac 00:24:93:01:73:19 interface ethernet 0/0/1
arp static ip 12.1.1.027 mac 00:24:93:01:73:1a interface ethernet 0/0/1
arp static ip 12.1.1.028 mac 00:24:93:01:73:1b interface ethernet 0/0/1
arp static ip 12.1.1.029 mac 00:24:93:01:73:1c interface ethernet 0/0/1
arp static ip 12.1.1.030 mac 00:24:93:01:73:1d interface ethernet 0/0/1
arp static ip 12.1.1.031 mac 00:24:93:01:73:1e interface ethernet 0/0/1
arp static ip 12.1.1.032 mac 00:24:93:01:73:1f interface ethernet 0/0/1
arp static ip 12.1.1.033 mac 00:24:93:01:73:20 interface ethernet 0/0/1
arp static ip 12.1.1.034 mac 00:24:93:01:73:21 interface ethernet 0/0/1

参考文献:
http://www.jianshu.com/p/2d3b21496f2a
http://www.justwinit.cn/post/2295/

  • 13
    点赞
  • 117
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: SecureCRT脚本使用VBScript语法VBScript是一种微软开发的脚本语言,它是Visual Basic的一部分,主要用于Windows操作系统上的脚本编写。在SecureCRT中,VBScript语法可以用于编写自动化脚本,实现自动化登录、执行命令、收集输出等功能。常用的VBScript语法包括变量定义、条件语句、循环语句、函数定义等。例如,以下是一个简单的VBScript脚本示例: ``` ' 定义变量 Dim strUsername, strPassword ' 输入用户名和密码 strUsername = "admin" strPassword = "password" ' 连接远程主机 crt.Session.Connect "/ssh2 /auth=password /user=" & strUsername & " /password=" & strPassword & " 192.168.1.1" ' 执行命令并收集输出 crt.Screen.Send "ls" & vbCr Do While crt.Screen.WaitForString("$") = 0 WScript.Sleep 100 Loop strOutput = crt.Screen.ReadString("$") ' 输出结果 MsgBox strOutput ``` 该脚本定义了两个变量strUsername和strPassword,然后使用这些变量连接到远程主机,并执行ls命令,最后将输出结果弹出消息框显示。 ### 回答2: SecureCRT 脚本可以使用多种编程语言编写,其中一种常用的是 VBScript(vbs)语言。VBScript 是一种微软开发的脚本语言,简单易学,同时也具有较强的处理能力。 SecureCRTVBScript 常用语法包括: 1.创建一个新的 Session 对象 使用对象的 CreateObject 方法来创建一个新 Session 对象,语法如下: ``` Dim objSecureCRT, objSession Set objSecureCRT = CreateObject("SecureCRT.Application") Set objSession = objSecureCRT.Sessions.Add("/SSH2 /L user /PASSWORD password /C 3des /M hmac-sha1-96 /CN certificate /D ""directory"" hostname") ``` 其中 `/SSH2` 表示使用 SSH2 协议,`/L` 表示登录时使用的用户名,`/PASSWORD` 表示登录密码,`/C` 和 `/M` 分别表示加密算法和摘要算法, `/D` 表示工作目录,`hostname` 是要连接的主机名或IP地址。 2.向远程设备发送命令并获取返回结果 使用 Session 对象的 Send 和 WaitForString 方法向远程设备发送命令,并获取返回结果,语法如下: ``` objSession.Connect objSession.Send "command" & chr(13) strOutput = objSession.WaitForString("prompt") ``` 其中 `Connect` 方法用于连接远程设备,`Send` 方法用于向设备发送命令, `WaitForString` 方法用于等待设备返回结果,并将结果存储在 `strOutput` 变量中。 3.保存 SecureCRT 会话 使用 Session 对象的 Save 方法可以保存当前的 SecureCRT 会话,语法如下: ``` objSession.Save ``` 4.关闭 SecureCRT 会话 使用 Session 对象的 Close 方法可以关闭当前的 SecureCRT 会话,语法如下: ``` objSession.Close ``` 以上是 SecureCRT 脚本常用的 VBScript 语法,可以根据实际需求进行修改和扩展。同时,SecureCRT 还支持其他编程语言的脚本编写,例如 Perl、Python、JavaScript 等。 ### 回答3: SecureCRT是一种强大的终端模拟器,可以方便地与远程服务器进行通信。其中,SecureCRT脚本是一种用于自动化执行特定任务的代码,可以帮助用户提高工作效率。 SecureCRT脚本是使用VBScript语言编写的,VBScript是一种 Visual Basic语言的轻量级版本。在SecureCRT脚本中,VBScript可用于创建变量、条件语句、循环结构、函数、模块等元素,可实现自动登录、自动执行命令、修改配置等Automate脚本,大大提高日常工作效率。 SecureCRT脚本中的VBScript语法包括以下几个方面: 1.十六进制表示 在SecureCRT脚本中,可以使用VBScript中的类似"CInt"、"CLng"、"CDbl"、"Hex"等来实现十进制和十六进制之间的转换。 2.正则表达式 正则表达式是一种用于匹配特定模式的语法SecureCRT脚本也支持正则表达式。可以使用VBScript中的"RegExp"函数来实现正则表达式功能。 3.文件操作 SecureCRT脚本也支持文件操作,包括打开、保存、读取、写入文件等功能。可以使用VBScript中的“FileSystemObject”对象来实现文件操作功能。 4.网络通信 SecureCRT脚本中也支持网络通信,包括使用Telnet、SSH等协议访问远程服务器,并可实现自动化登录、执行命令等操作。 总的来说,SecureCRT脚本中的VBScript语法具有灵活性、可扩展性和易用性,可帮助用户实现各种自动化操作,提高工作效率,减少重复性劳动。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值