SecureCrt脚本(三)二级对象之Screen详解

Crt自动化 测试 SecureCrt脚本 JS脚本

 各位看官们喜欢的话,识别二维码,给个打赏哟,大家的激励也是我的动力~
 
 

1、引言

本节开始讲解Crt脚本中最常用,也是功能最强大的二级对象Screen的属性和方法,凡是需要和远程设备进行交互的部分都是需要使用Screen对象的属性或方法的,因此本节将是重点。

2、Screen属性和方法

属性 方法
CurrentColumn Clear
CurrentRow Get
Columns Get2
Rows IgnoreCase
IgnoreEscape Send
MatchIndex SendKeys
Synchronous SendSpecial
  WaitForCursor
  WaitForKey
  WaitForString
  WaitForStrings
  ReadString

2.1、属性

2.1.1、CurrentColumn

解释

返回当前光标处的列坐标,如下图所示的下面显示的数字"9"就是当前光标位于第9列。

语法

crt.Screen.CurrentColumn

代码
  • JS
    1 # $language = "JScript"
    2 # $interface = "1.0"
    3  
    4 var curCol = crt.Screen.CurrentColumn;
    5 crt.Dialog.MessageBox(curCol);

2.1.2、CurrentRow

解释

返回当前光标处的行坐标,如下图所示的下面显示的数字"35"就是当前光标位于第35行。但这个功能有个问题就是当满屏输出后这个值一直表示最大值,等同于底下要讲的子属性四:Rows的值。

语法

crt.Screen.CurrentRow

代码

  • JS
    1 # $language = "JScript"
    2 # $interface = "1.0"
    3  
    4 var curRow = crt.Screen.CurrentRow;
    5 crt.Dialog.MessageBox(curRow);

2.1.3、Columns

解释

返回当前屏幕的最大列宽。

语法

crt.Screen.Columns

代码

  • JS
    1 # $language = "JScript"
    2 # $interface = "1.0"
    3  
    4 var cols = crt.Screen.Columns;
    5 crt.Dialog.MessageBox(cols);

2.1.4、Rows

解释

返回当前屏幕的最大行宽,这个行宽指的是可见区的,并不是指缓冲区的行宽

语法

crt.Screen.Rows

代码

  • JS
    1 # $language = "JScript"
    2 # $interface = "1.0"
    3  
    4 var rows = crt.Screen.Rows;
    5 crt.Dialog.MessageBox(rows);

2.1.5、IgnoreEscape

解释

定义当使用WaitForString、WaitForStrings 和 ReadString这三个方法时是否获取Escape字符(也就是特殊控制字符,如"\n"),默认是会获取的。

语法

crt.Screen.IgnoreEscape [ = True | False ]

参数:

true|false:当设置为true时不会获取特殊字符,为false时会获取,默认为false。

代码

  • JS
     1 # $language = "JScript"
     2 # $interface = "1.0"
     3 
     4 // 设置false,获取ctrl+c
     5 crt.Screen.IgnoreEscape = false;
     6 crt.Dialog.MessageBox(crt.Screen.ReadString("\03"));
     7 
     8 // 设置true,不获取ctrl+c
     9 crt.Screen.IgnoreEscape = true;
    10 crt.Dialog.MessageBox(crt.Screen.ReadString("\03"));
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
# $language = "VBScript" # $interface = "1.0" '作者;小怪兽怪瘦 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:\backup\list.txt",Forreading, False) crt.window.show 3 crt.Screen.Synchronous = True do while file1.AtEndOfStream True '读取每一行 line = file1.ReadLine '分割IP,用户名,密码 特权密码 型号简写(z m h b) 位置 params = Split (line) ip = params(0) user = params(1) password = params(2) su = params(3) mode = params(4) whereis = params(5) crt.session.LogFileName = "D:\backup\log\"&ip&"_"&whereis&"_20190620.txt" '提供日志,修改后面日期即可 crt.session.Log(true) crt.Session.Connect ( "/SSH2 /L "&user&" /PASSWORD "&password&" "&ip) '建立SSH连接 if mode = "m" then 'm 代表迈普型号 crt.Screen.Send "enable" & chr(13) crt.Screen.WaitForString "assword:" crt.Screen.Send params(3) & chr(13) crt.Screen.WaitForString "#" '关闭more提示 crt.Screen.Send "more off" & chr(13) crt.Screen.WaitForString "#" '执行命令集 Set cmdfile = fso.OpenTextFile("D:\backup\cmd-mp.txt",Forreading, False) do while cmdfile.AtEndOfStream True line2 = cmdfile.ReadLine crt.Screen.Send line2 & Chr(13) crt.Screen.waitForString "#" loop crt.Screen.Send "show running-config" & chr(13) crt.Screen.WaitForString "#" '打开more提示 crt.Screen.Send "more on" & chr(13) crt.Screen.WaitForString "#" crt.Screen.Send "exit" & chr(13) crt.Screen.WaitForString ">" crt.Session.Disconnect end if if mode = "c" then 'c 代表思科型号 crt.Screen.WaitForString ">" crt.Screen.Send "enable" & chr(13) crt.Screen.WaitForString "assword:" crt.Screen.Send params(3) & chr(13) crt.Screen.WaitForString "#" '关闭more提示 crt.Screen.Send "configure terminal" & chr(13) crt.Screen.WaitForString "config)#" crt.Screen.Send "line vty 0 4" & chr(13) crt.Screen.WaitForString "line)#" crt.Screen.Send "length 0" & chr(13) crt.Screen.WaitForString "line)#" crt.Screen.Send "end" & chr(13) crt.Screen.WaitForString "#" '执行命令集 Set cmdfile = fso.OpenTextFile("D:\backup\cmd-cisco.txt",Forreading, False) do while cmdfile.AtEndOfStream True line2 = cmdfile.ReadLine crt.Screen.Send line2 & Chr(13) crt.Screen.waitForString "#" loop crt.Screen.Send "show running-config" & chr(13) crt.Screen.WaitForString "#" '打开more提示 crt.Screen.Send "configure terminal" & chr(13) crt.Screen.WaitForString "config)#" crt.Screen.Send "line vty 0 4" & chr(13) crt.Screen.WaitForString "line)#" crt.Screen.Send "no length" & chr(13) crt.Screen.WaitForString "line)#" crt.Screen.Send "end" & chr(13) crt.Screen.WaitForString "#" crt.Session.Disconnect end if if mode = "r" then 'r 代表锐捷型号 crt.Screen.WaitForString ">" crt.Screen.Send "enable" & chr(13) crt.Screen.WaitForString "assword:" crt.Screen.Send params(3) & chr(13) crt.Screen.WaitForString "#" '关闭more提示 crt.Screen.Send "configure terminal" & chr(13) crt.Screen.WaitForString "config)#" crt.Screen.Send "line vty 0 15" & chr(13) crt.Screen.WaitForString "line)#" crt.Screen.Send "length 0" & chr(13) crt.Screen.WaitForString "line)#" crt.Screen.Send "end" & chr(13) crt.Screen.WaitForString "#" '执行命令集 Set cmdfile = fso.OpenTextFile("D:\backup\cmd-rj.txt",Forreading, False) do while cmdfile.AtEndOfStream True line2 = cmdfile.ReadLine crt.Screen.Send line2 & Chr(13) crt.Screen.waitForString "#" loop crt.Screen.Send "show running-config" & chr(13) crt.Screen.WaitForString "#" '打开more提示 crt.Screen.Send "configure terminal" & chr(13) crt.Screen.WaitForString "config)#" crt.Screen.Send "line vty 0 15" & chr(13) crt.Screen.WaitForString "line)#" crt.Screen.Send "no length" & chr(13) crt.Screen.WaitForString "line)#" crt.Screen.Send "end" & chr(13) crt.Screen.WaitForString "#" crt.Session.Disconnect end if if mode = "z" then 'z 代表中兴型号 crt.Screen.Send "enable" & chr(13) crt.Screen.WaitForString "assword:" crt.Screen.Send params(3) & chr(13) crt.Screen.WaitForString "#" '执行命令集 Set cmdfile = fso.OpenTextFile("D:\backup\cmd-zx.txt",Forreading, False) do while cmdfile.AtEndOfStream True line2 = cmdfile.ReadLine crt.Screen.Send line2 & Chr(13) if (crt.Screen.WaitForString (" --More--",1)False) then crt.Screen.Send " " & chr(13) else crt.Screen.Send chr(13) end if crt.Screen.waitForString "#" loop 'crt.Screen.Send "show running-config" & chr(13) 'crt.Screen.WaitForString " --More--" 'crt.Screen.WaitForString "#" crt.Session.Disconnect
SecureCRT 是一款常用的终端仿真软件,支持多种协议和加密方式,同时还提供了脚本功能,可以通过脚本自动化完成一些任务,提高工作效率。下面是 SecureCRT 脚本命令的详解: 1. crt.Screen.Send(string) 该命令可以将字符串发送到当前会话的终端窗口。例如,可以使用以下命令发送 ls 命令: ```python crt.Screen.Send("ls\r") ``` 2. crt.Screen.WaitForString(string) 该命令可以等待特定的字符串出现在终端窗口中,然后继续执行脚本。例如,可以使用以下命令等待 $ 符号出现: ```python crt.Screen.WaitForString("$") ``` 3. crt.Dialog.MessageBox(string) 该命令可以显示一个消息框,显示指定的字符串。例如,可以使用以下命令显示一个提示框: ```python crt.Dialog.MessageBox("请注意!") ``` 4. crt.Dialog.Prompt(string) 该命令可以显示一个提示框,要求用户输入文本。例如,可以使用以下命令提示用户输入用户名: ```python username = crt.Dialog.Prompt("请输入用户名:", "用户名", "") ``` 5. crt.Dialog.FileOpenDialog() 该命令可以显示一个文件打开对话框,让用户选择文件。例如,可以使用以下命令提示用户选择一个文本文件: ```python filename = crt.Dialog.FileOpenDialog("请选择一个文本文件:", "选择文件", "", "*.txt", 0) ``` 6. crt.Session.Connect(string) 该命令可以连接到指定的主机和端口。例如,可以使用以下命令连接到主机 192.168.1.1 的 SSH 服务: ```python crt.Session.Connect("ssh://192.168.1.1:22") ``` 7. crt.Session.Disconnect() 该命令可以断开当前会话的连接。例如,可以使用以下命令断开当前会话: ```python crt.Session.Disconnect() ``` 8. crt.Session.LogFileName 该命令可以获取当前会话的日志文件名。例如,可以使用以下命令打印当前会话的日志文件名: ```python crt.Screen.Send("echo " + crt.Session.LogFileName + "\r") ``` 9. crt.Session.Log(True/False) 该命令可以打开或关闭当前会话的日志记录。例如,可以使用以下命令开启日志记录: ```python crt.Session.Log(True) ``` 10. crt.Session.LogString(string) 该命令可以将指定的字符串写入当前会话的日志文件。例如,可以使用以下命令记录一个错误消息: ```python crt.Session.LogString("发生了一个错误!") ``` 以上是 SecureCRT 脚本命令的部分详解,还有其他命令可以自行查阅官方文档。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值