说明
- 以SecureCRT 8.3.4 为参考,低版本可能有的内容不支持
- SecureCRT 8.3.4 内置Python版本为Python2
常用语法
python脚本开头格式
def main():
pass
def sun():
pass
main()
Sleep睡眠
发送命令或文本
弹出消息框
常用对象操作
Application 应用程序对象
属性
ActivePrinter 活动打印机
- 介绍
- 返回或设置活动打印机
- 设置的活动打印机为系统中打印机的名字
- 设置好活动打印机后,再使用打印功能(不是自动打印)会使用指定打印机
- 语法
crt.ActivePrinter [ = printerName ]
- 示例 设置活动打印机
crt.ActivePrinter = "Microsoft Print to PDF"
- 示例 获取活动打印机
crt.Dialog.MessageBox(crt.ActivePrinter)
ScriptFullName 脚本名称
- 介绍
返回当前运行脚本的完整路径和文件名 - 语法
[ varname = ] crt.ScriptFullName
- 示例
ScriptName = crt.ScriptFullName
Version 版本
- 介绍
- 返回一个字符串类型的CRT版本
- 语法
crt.Version
方法
ClearLastError 清除最新错误
- 介绍
- 将GetLastError和GetLastErrorMessage的响应重置为,ERROR_SUCCESS 和 “The operation completed successfully.”
- 语法
crt.ClearLastError()
GetLastError 获取最新错误
- 介绍
- 返回最近发生的脚本异常的错误代码。
- 当脚本处于“resume next”错误模式时,这是最有用的,这意味着即使发生错误,脚本也会继续执行
- 语法
varname = crt.GetLastError()
- 示例
def main():
try:
crt.Session.ConnectInTab("nowhere")
except ScriptError:
errcode = crt.GetLastError()
crt.Dialog.MessageBox("Error Code: " + str(errcode))
main()
GetLastErrorMessage 获取最新错误消息
- 介绍
- 返回最近发生的脚本异常的错误文本,而不是代码
- 语法
varname = crt.GetLastErrorMessage()
Quit 退出CRT
- 介绍
退出CRT软件 - 语法
crt.Quit()
Sleep 睡眠
- 时间暂停,单位豪秒
- 语法
crt.Sleep(1000)
Arguments 命令行启动参数对象
- Arguments对象允许脚本访问由一个或多个SecureCRT/ARG命令行选项传递给脚本的参数
获取对象
- 介绍
- 返回对SecureCRT的Arguments对象的引用
- ARG是SecureCRT命令行的参数
- 语法
object = crt.Arguments
- 示例
object = crt.Arguments
属性
Count 数量
- 介绍
返回使用SecureCRT的/ARG命令行选项传递给SecureCRT的参数数量,是int类型 - 语法
crt.Arguments.Count
方法
GetArg
- 介绍
- 返回与传递给SecureCRT的每个/ARG命令行选项关联的参数数据
- GetArg是默认方法,即正面两句代码是等效的
MsgBox crt.Arguments.GetArg(0)
MsgBox crt.Arguments(0)
- 语法
- 第一个参数为0,最后一个参数为-1
crt.Arguments.GetArg(number)
Clipboard 剪贴板对象
- 介绍
- 返回对SecureCRT剪贴板对象的引用
- 语法
object = crt.Clipboard
属性
Format 获取/设置格式
- 介绍
- 返回或设置剪贴板格式
- Windows上可能有的格式为:CF_TEXT, CF_OEMTEXT, CF_UNICODETEXT, and VDS_TEXT.
- MAC上可能有的格式为:CF_UNICODETEXT and VDS_TEXT
- 示例
crt.Screen.Synchronous = True
def main():
format = crt.Clipboard.Format
crt.Clipboard.Format = crt.Clipboard.VDS_TEXT
crt.Clipboard.Format = format
crt.Clipboard.Format = crt.Clipboard.DEFAULTFORMAT
main()
- 格式介绍
格式 | 介绍 |
---|
CF_TEXT | 一种以 NULL 结尾的 ANSI 字符集字符串,字符串的每行结尾处含有一个回车换行符 |
CF_OEMTEXT | 此文本格式包含OEM字符集中的字符。每行以回车/换行(CR-LF)组合结束。空字符表示数据结束,只有windows支持 |
CF_UNICODETEXT | 每行以回车符/换行符(CR-LF)组合结束。空字符表示数据结束 |
DEFAULTFORMAT | 未理解 |
VDS_TEXT | 这是一种专用剪贴板格式,在将数据从屏幕复制到剪贴板时将某些特殊字符转换为ASCII, |
Text 返回或设置剪贴板的内容
- 介绍
- 返回或设置剪贴板的内容
- 语法
- 将剪贴板的内容赋值给变量
MyStr = crt.Clipboard.Text
- 设置剪贴板的内容
crt.Clipboard.Text = "hello word!"
- 发送剪贴板的内容到远程主机
crt.Screen.Send(crt.Clipboard.Text)
CommandWindow 命令窗口对象
- 命令窗口指的是,在CRT软件的视图中勾选"命令窗口"时出现的命令窗口
属性
SendCharactersImmediately 立即发送字符
- 介绍
- 如果设置为True,在命令窗口手动输入字符时,会同步显示在窗口中
- 语法
crt.CommandWindow.SendCharactersImmediately [ = True | False ]
- 示例
crt.CommandWindow.SendCharactersImmediately = True
SendToAllSessions 是否发送到所有会话
- 当设置为True是发送到窗口的命令会发送到所有会话
- 语法
crt.CommandWindow.SendCharactersImmediately [ = True | False ]
- 示例
crt.CommandWindow.SendCharactersImmediately = True
Text 返回或设置命令窗口中的文本
- 介绍
- CRLF(回车换行)可以将多行添加到命令窗口
- 此处的命令窗口不是CRT的操作窗口,是CRT的视图中勾选的"命令窗口"
- 语法
- 设置
crt.CommandWindow.Text [ = text ]
- 示例
- 获取
crt.Dialog.MessageBox(crt.CommandWindow.Text)
- 设置
crt.CommandWindow.Text = "ls -l\r\npwd\r\nwhoami"
Visible 窗口是否可见
- 介绍
返回或设置一个布尔值,该值指示命令窗口是否可见 - 语法
- 返回一个布尔值,True为可见,False为不可见
- 返回的是布尔值,如果用MessageBox显示需要转换为字符串
object = crt.CommandWindow.Visible
- 设置是否可见
crt.CommandWindow.Visible = [ True | False ]
- 示例
crt.CommandWindow.Visible = True
方法
Send 发送命令窗口的文本到会话
- 介绍
- 将命令窗口中的文本发送到远程主机
- 命令窗口的文本需要使用crt.CommandWindow.Text设置,或手动输入
- 语法
crt.CommandWindow.Send()
dialog 对话框对象
- 介绍
- 返回对SecureCRT对话框对象的引用
- 语法
object = crt.Dialog
方法
FileOpenDialog 打开文件对话框
- 介绍
弹出一个对话框,用于选择单个文件,如果选择了具体文件则返回该文件的绝对路径,如果选择了弹窗的"取消",则返回"" - 语法
crt.Dialog.FileOpenDialog([title, [buttonLabel, [defaultFilename, [filter ]]]])
- 参数
参数 | 解释 |
---|
title | 弹窗最上面的标题文字,见运行结果中窗口最上面的"请选择一个文件"。 |
buttonLabel | 见下图中的"Open"按钮,即打开文件用的,至于名称可以使用"Open"或者"打开"均可。 |
defaultFilename | 默认文件名,如下,在弹窗的"文件名"中默认有"a.log"。注意:当有默认文件名时即使当前文件夹中没有该文件,在点击"打开"按钮后,结果依然会返回该文件的当前目录的绝对路径。 |
filter | 用于过滤文件类型,见脚本举例中的格式,"Log Files (*.log) |
- 实例
filePath = crt.Dialog.FileOpenDialog("请选择一个文件", "Open", "a.log", "Log Files (*.log)|*.log")
MessageBox 弹出消息框
- 介绍
弹出一个消息框,可以定义按钮,使用按钮和文本消息来实现和用户的简单对话。 - 语法
crt.Dialog.MessageBox(message [, title [icon|buttons]])
- 示例
- 常见示例
crt.Dialog.MessageBox("显示内容")
- 完整示例
crt.Dialog.MessageBox("这里是消息框正文","这里是标题",64|6)
- 参数
参数 | 解释 |
---|
message | 消息文字,必选参数,见运行结果中的消息正文。 |
title | 弹窗的标题描述,见运行结果中的标题处。 |
icon | 警示图标,见结果中的图1到图4。icon的取值有:16(叉号,表示错误),32(问号,表示确认),48(叹号,表示警告),64(提示,表示信息提示) |
buttons | 按钮类型,定义不同的类型,可以有不同的选项,同时鼠标点击不同的选项时也有不同的返回值。button取值范围为0到6 |
接收返回值 | a = crt.Dialog.MessageBox(“内容”),返回值为int类型,如果用MessageBox显示需要转换为字符串类型 |
- icon预览
- 16(叉号,表示错误)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SI1aD4Q0-1620974595704)(vx_images/2389329080459.png)] - 32(问号,表示确认)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fz0XA3to-1620974595716)(vx_images/1503530098885.png)] - 48(叹号,表示警告)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J7hYmqPg-1620974595719)(vx_images/2710632106918.png)] - 64(提示,表示信息提示)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YdCKTOZz-1620974595725)(vx_images/277131086752.png)]
- buttons预览
- 0,点击后返回值为1;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SNmq2ae0-1620974595727)(vx_images/277131086752.png)] - 1,点击’确定’时,返回1,点击’取消’时返回2;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XO1tCIIZ-1620974595732)(vx_images/2561237099587.png)] - 2,点击’终止’时,返回3,点击’重试’时返回4,点击’忽略’时返回5;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kvMVKgxn-1620974595734)(vx_images/2511238096142.png)] - 3,点击’是’时,返回6,点击’否’时,返回7,点击’取消’时返回2;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oaYyCps5-1620974595738)(vx_images/1595739091896.png)] - 4,点击’是’时,返回6,点击’否’时,返回7;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gDm5GWD2-1620974595741)(vx_images/2445940109776.png)] - 5,点击’重试’时,返回4,点击’取消’时返回2;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-igLRwrKF-1620974595746)(vx_images/1867241107380.png)] - 6,点击’取消’时,返回2,点击’重试’时,返回10,点击’继续’,返回11;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3p65ZPIA-1620974595747)(vx_images/1016442104882.png)]
Prompt 弹出输入框
- 介绍
弹出一个输入框,用户可以填写文字,比如填写文件名,填写路径,填写IP地址等。内容赋值给变量 - 语法
crt.Dialog.Prompt(message [,title[,default[,isPassword]]])
- 示例
- 常用示例
a = crt.Dialog.Prompt("请输入内容,返回字符串类型")
crt.Dialog.MessageBox(a)
- 完整示例
password = crt.Dialog.Prompt("这里是正文","这里是弹窗标题","这是默认值",False)
- 参数
参数 | 解释 |
---|
message | 消息文字,必选参数 |
title | 弹窗的标题描述 |
default | 默认值,如果为"",则没有默认值 |
isPassword | 是否要隐藏输入的文字,为True时输入内容显示为*,并且default不显示 |
FileTransfer 文件传输对象
- 介绍
- 返回对SecureCRT的FileTransfer对象的引用
- 语法
object = crt.FileTransfer
属性
DownloadFolder 下载路径
- 返回会话的下载路径
- 语法
crt.FileTransfer.DownloadFolder
ZmodemUploadAscii 设置Zmodem上传模式
- 指定为ascii还是二进制模式
- 语法
crt.FileTransfer.ZmodemUploadAscii = [True | False]
- 示例,上传文件
crt.Screen.Synchronous = True
crt.FileTransfer.AddToZmodemUploadList("C:\\Windows\\System32\\drivers\\etc\\hosts")
crt.FileTransfer.AddToZmodemUploadList("C:\\Windows\\System32\\drivers\\etc\\networks")
crt.FileTransfer.ZmodemUploadAscii = True
crt.Screen.Send("rz\n")
crt.Screen.WaitForString("->")
crt.FileTransfer.ZmodemUploadAscii = False
方法
AddToUploadList 将文件放在Y/Zmodem上载列表中
- 示例,上传文件
crt.Screen.Synchronous = True
crt.FileTransfer.AddToUploadList("C:\\Windows\\System32\\drivers\\etc\\hosts")
crt.FileTransfer.AddToUploadList("C:\\Windows\\System32\\drivers\\etc\\networks")
crt.FileTransfer.ZmodemUploadAscii = True
crt.Screen.Send("rz\n")
crt.Screen.WaitForString("->")
ClearUploadList 清除Y/Zmodem上载列表
- 语法
crt.FileTransfer.ClearUploadList()
SendKermit 启动Kermit协议文件发送
- 语法
crt.FileTransfer.SendKermit()
ReceiveKermit 启动Kermit协议文件下载
- 语法
crt.FileTransfer.ReceiveKermit()
SendXmodem 启动Xmodem协议文件发送
- 语法
crt.FileTransfer.SendXmodem(filepath)
ReceiveXmodem 启动Xmodem协议文件下载
- 语法
crt.FileTransfer.ReceiveXmodem(filepath)
SendYmodem 启动Ymodem协议文件发送
- 语法
crt.FileTransfer.SendYmodem()
ReceiveYmodem 启动Ymodem协议文件下载
- 语法
crt.FileTransfer.ReceiveYmodem()
screen 屏幕对象
- 介绍
- 返回对SecureCRT屏幕对象的引用
- 语法
object = crt.Screen
属性
CurrentColumn 当前列坐标
- 介绍
- 返回光标的当前列坐标
- 返回值为int类型
- 语法
[ varname = ] object.CurrentColumn
- 示例
curCol = crt.Screen.CurrentColumn
CurrentRow 当前行坐标
- 介绍
- 返回光标的当前行坐标
- 返回值为int类型
- 语法
[ varname = ] object.CurrentRow
- 示例
curRow = crt.Screen.CurrentRow
Columns 当前屏幕最大列宽
- 介绍
- 返回当前屏幕最大列宽
- 返回值为int类型
- 语法
[ varname = ] object.Columns
- 示例
cols = crt.Screen.Columns
IgnoreEscape 忽略特殊控制字符
- 定义当使用WaitForString、WaitForStrings 和 ReadString这三个方法时是否获取Escape字符(也就是特殊控制字符,如"\n"),默认是获取.
- 语法
object.IgnoreEscape [ = True | False ]
- 示例
crt.Screen.IgnoreEscape = False
crt.Dialog.MessageBox(crt.Screen.ReadString([chr(27), chr(7)]))
crt.Screen.IgnoreEscape = True
crt.Dialog.MessageBox(crt.Screen.ReadString([chr(27), chr(7)], 5))
MatchIndex
- 介绍
- 在使用ReadString或waitForString方法时
- 在字符串列表中找到的索引
- 语法
[ varname = ] object.MatchIndex
- 示例
szOutput = crt.Screen.ReadString(["error", "warning", "#"], 10)
index = crt.Screen.MatchIndex
if (index == 0):
crt.Dialog.MessageBox("Timed out!")
elif (index == 1):
crt.Dialog.MessageBox("Found 'error'")
elif (index == 2):
crt.Dialog.MessageBox("Found 'warning'")
elif (index == 3):
crt.Dialog.MessageBox("Found '#'")
Rows 当前屏幕最大行数
- 返回值为int类型
rows = crt.Screen.Rows
Selection 返回选择的内容
- 示例
- 获取选择的文本
szSelection = crt.Screen.Selection
- 在百度上搜索选中的文本
import webbrowser
szSelection = crt.Screen.Selection
g_szURL = "http://www.baidu.com/s?wd=" + szSelection
webbrowser.open(g_szURL)
Synchronous 屏幕同步
- 介绍
- 若设置为False,则在脚本中使用WaitForString、WaitForStrings或ReadString函数时可能存在丢失一部分数据的现象
- 设置为True后可能会存在屏幕卡顿的情况
- 跑脚本时建议设置为True
- 语法
crt.Screen.Synchronous = True|False
方法
Clear 清屏
- 语法
crt.Screen.Clear()
Get() 获取矩形框内的屏幕上的字符
- 介绍
- 按照坐标取出一个矩形框内的屏幕上的字符
- 不包含字符串中的回车换行符
- 多用于获取无格式的光标处字符串或某小段特定区域字符串
- 语法
crt.Screen.Get(row1, col1, row2, col2)
- 参数
参数 | 解释 |
---|
row1 | 开始点的行坐标 |
col1 | 开始点的列坐标 |
row2 | 结束点的行坐标 |
col2 | 结束点的列坐标 |
getScr = crt.Screen.Get(31,50,31,56)
Get2() 获取矩形框内的屏幕上的字符
- 用法同Get(),只是包含回车换行符
IgnoreCase() 忽略大小写
- 介绍
- 使用全局参数设置控制在使用WaitForString、WaitForStrings和ReadString这三个函数时是否对大小写敏感
- 默认为false指大小写敏感即大小写字符串都会检查
- 设置为true时则不会检测大小写
- 语法
crt.Screen.IgnoreCase = True|False
Print 打印
- 介绍
- 开始或停止自动打印
- 语法
object.Print(start)
- 示例,启用自动打印
crt.Session.Print(1)
crt.Session.Print(0)
ReadString 读取字符
- 读取1个字符
- 语法
varname = crt.Screen.ReadString()
- 捕获数据,直到从远程检测到特定字符串为止
- 语法
varname = crt.Screen.ReadString(StringToWaitFor [, TimeOutSeconds])
- 参数
参数 | 解释 |
---|
StringToWaitFor | 等待出现的字符 |
TimeOutSeconds | 等待时间 |
- 示例
- 这段程序执行后,开始读取字符
- 多个字符可以使用列表格式
- 如果过了10秒,还没有出现等待的字符则获取为空
- 如果10秒内出现了等待的字符,则获取内容为等待字符之前的内容
- 代码
varname = crt.Screen.ReadString(["hello","word"],10)
Send() 向屏幕发送命令或字符串
- 介绍
- 向远端设备或者向屏幕(向屏幕发送的功能是CRT7.2以后版本才提供的)发送字符串
- 字符串可以包含转码字符比如"\r","\n","\03"(ctrl+c)
- 语法
crt.Screen.Send(string, [, bSendToScreenOnly])
- 参数
参数 | 解释 |
---|
string | 要发送的字符串 |
bSendToScreenOnly | 可选参数,当发送字符时为True,发送命令时省略 |
- 示例
- 发送命令
crt.Screen.Send("show version | no-more\r")
- 发送字符串
crt.Screen.Send("hello,world!",True)
crt.Screen.Send("\r")
SendKeys 发送按键
- 介绍
- 向活动窗口发送按键
- SendKeys方法可以通过使用复合字符串参数一次发送多个击键
- 字符“+”、“^”和“%”分别执行SHIFT、CTRL和ALT的功能
- “^%c”= CTRL+ALT+c
- 括号字符用于对修饰符的字符进行分组,例如,“+(ec)”将发送“ec”
- 要发送括号字符,请发送字符串参数“{[}”作为左括号,“{]}”作为右括号,"{{}"为左大括号
- 语法
目前此方法不支持python
SendSpecial 发送CRT内置功能
- 介绍
- 可以发送特殊控制码,这个控制码是Crt内置的功能
- 具体可以包含的有Menu、Telnet、VT functions功能列表中提供的所有功能
- 语法
object.SendSpecial(string)
- 常用功能
功能 | 字符串 |
---|
启用/禁用日志 | MENU_LOG_SESSION |
CRT的"查找"功能 | MENU_FIND |
清除回滚,保留当前屏 | MENU_CLEAR_SCROLLBACK |
克隆标签 | MENU_TAB_CLONE |
关闭当前标签,如果没有断开连接,会有提示,需要按键 | MENU_TAB_CLOSE |
关闭所有没有连接的标签 | MENU_TAB_CLOSE_ALL_NOT_CONNECTED |
- 示例
- 启用/禁用日志
crt.Screen.SendSpecial("MENU_LOG_SESSION")
WaitForCursor 等待光标移动
- 介绍
- 等待光标移动,当移动时返回值为True
- 当有超时时间参数且超时时返回False,否则会一直等待光标移动
- 超时时间是以秒为单位
- 语法
[ result = ] object.WaitForCursor([timeout])
- 示例
- 判断命令是否完成,有时不太准确,最好结合其它方法
while crt.Screen.WaitForCursor(1):
pass
else:
crt.Screen.Send("命令执行完毕",True)
crt.Screen.Send("\r")
WaitForKey() 等待按键
- 介绍
- 检测有键盘按键时返回true
- 当有超时时间参数且超时时返回false,否则会一直等待按键。
- 只能检测到有输入
- 语法
[ result = ] object.WaitForKey([timeout])
WaitForString() 等待字符出现
- 介绍
- 一般用于发送命令后等待某字符串
- 这个字符串只要是屏幕上出现的即可,粘贴或输入上去的字符也会同样被检测到
- 语法
[ result = ] object.WaitForString string [, timeout] [bCaseInsensitive]
- 参数
参数 | 解释 |
---|
StringsArray | 必选参数,等待的字符串 |
timeout | 可选参数,超时时间,当检测不到对应字符串时会返回false,没有此参数时会一直等待; |
bCaseInsensitive | 可选参数,大小写不敏感,默认值是false,表示将检测字符串的大小写,当为true时不检测大小写 |
- 示例
- 等待提示让输入密码
crt.Screen.WaitForString("assword:")
WaitForStrings() 等待字符(多个)出现
- 介绍
- 和WaitForString是同样的功能,只不过可以等待多个字符串
- 如果有匹配到某个字符串,则返回值该字符串在这些字符串中的位置,位置值从1开始
- 若在超时时间内没有匹配到则返回false,没有超时时间时会一直等待
- 语法
[ result = ] object.WaitForStrings string1, [string2, ..., stringn] [, timeout] [bCaseInsensitive]
- 参数
参数 | 解释 |
---|
StringsArray | 必选参数,等待的字符串,如果是多个,使用列表格式 |
timeout | 可选参数,超时时间,当检测不到对应字符串时会返回false,没有此参数时会一直等待; |
bCaseInsensitive | 可选参数,大小写不敏感,默认值是false,表示将检测字符串的大小写,当为true时不检测大小写 |
- 示例
result = crt.Screen.WaitForStrings(["foo", "bar", "quux", "gee"], 10)
if (result == 1):
crt.Dialog.MessageBox("出现了字符串foo")
elif (result == 2):
crt.Dialog.MessageBox("出现了字符串bar")
elif (result == 0):
crt.Dialog.MessageBox("Timed out!")
Session 会话
- 介绍
- 返回对SecureCRT会话对象的引用
- 语法
object = crt.Session
属性
Config 配置
- 介绍
- 返回与会话关联的配置,结果是一个对象,类型为"SessionConfiguration"
- 语法
objectvarname = object.Config
- 示例
config = crt.Session.Config
Connected 已连接
- 介绍
返回一个布尔值,表示当前会话是否已连接。 - 语法
[ varname = ] object.Connected
- 示例
def main():
if not crt.Session.Connected:
crt.Dialog.MessageBox(
"没有连接到任何主机,请连接到主机后再执行脚本")
return
main()
LocalAddress 本地地址
- 介绍
以字符串形式返回本地(安装CRT)计算机的IP地址 - 语法
[ varname = ] object.LocalAddress
- 示例
ip1 = crt.Session.LocalAddress
crt.Dialog.MessageBox(ip1)
Locked 锁定
- 介绍
返回一个布尔值,表示当前会话是否已锁定 - 语法
[ varname = ] object.Locked
- 示例
session1 = crt.Session.Locked
LogFileName 日志文件名
- 介绍
返回或设置当前日志文件的名称,只是设置日志文件名,不能开始记录日志. - 语法
[ varname = ] object.LogFileName [ = filename ]
- 示例
- 设置日志文件名
file = r"D:\Users\liu\Desktop\LOG_CRT\LOG_20210422\test.txt"
crt.Session.LogFileName = file
Logging 正在记录
- 介绍
- 返回一个布尔值,表示当前会话是否正在记录
- 语法
[ varname = ] object.Logging
- 示例
isLoggin = crt.Session.Logging
crt.Dialog.MessageBox(str(isLoggin))
Path 路径
- 介绍
返回在会话管理器或“连接”对话框中找到的当前会话的路径,包括会话本身的名称 - 语法
[ varname = ] object.Path
- 示例
sessionPath = crt.Session.Path
crt.Dialog.MessageBox(sessionPath)
RemoteAddress 远程地址
- 介绍
以字符串形式返回远程主机的IP地址 - 语法
[ varname = ] object.RemoteAddress
- 示例
ip1 = crt.Session.RemoteAddress
crt.Dialog.MessageBox(ip1)
RemotePort 远程端口
- 介绍
返回远程端口的端口号,int类型 - 语法
[ varname = ] object.RemotePort
- 示例
port = crt.Session.RemotePort
crt.Dialog.MessageBox(str(port))
方法
Connect 连接
- 介绍
- 连接到一个会话
- Connect方法接受一个字符串参数,该参数指定如何建立连接
- Connect方法可以接受空参数集,即Connect()
- 表示“连接到当前会话”
- 如果之前没有建立连接,则命令将失败
- 如果连接已经存在,则不会发生任何事情,否则,此命令相当于按下“重新连接”按钮
- 语法
object.Connect(arg [, True|False] [, True|False])
- 示例
- 连接到一个会话管理器中的会话
- 明文密码连接
crt.Session.Connect("/SSH2 /PASSWORD BDidc123 bdidc@192.168.85.254", True)
- 加密密码连接
set config = crt.OpenSessionConfiguration("<session name>")
crt.Dialog.Messagebox(config.GetOption("Password"))
crt.Session.Connect("/SSH2 /ENCRYPTEDPASSWORD " + config.GetOption("Password") + "<username>@<hostname>", True)
ConnectInTab 连接Tab里的
- 介绍
- 连接到选项卡或平铺会话窗口中的会话
- ConnectInTab方法还接受两个可选参数(True或False)
- 第一个决定脚本是否应该等待连接完全验证后再继续
- 仅适用于SSH1和SSH2连接
- 第二个可选参数指定调用是静默失败还是引发异常
- 如果第二个参数为False,并且连接尝试失败,则会引发异常并返回空对象
- 如果第二个参数为True,并且连接尝试失败,则该方法将返回一个有效的Tab对象,然后可以使用该对象检查连接状态,以确定连接尝试是否成功
- 语法
objTab = object.ConnectInTab [arg [, True|False] [, True|False]]
- 示例
- 连到会话管理器中的一个会话
- 可以使用Path属性获取会话路径
- 代码
crt.Session.ConnectInTab("/s IDC/Server")
- 连接到一个telnet会话,指定23号端口
crt.Session.ConnectInTab("/telnet 10.216.147.18 23")
- 完整连到telnet脚本
def main():
crt.Session.ConnectInTab("/telnet 10.216.147.18 23")
actTab = crt.GetActiveTab()
actTab.Screen.WaitForString("assword:")
actTab.Screen.Send("11223344\r")
main()
Disconnect 断开
- 介绍
断开当前会话的连接 - 语法
object.Disconnect()
- 示例
crt.Session.Disconnect()
Lock 锁定
- 介绍
- 锁定当前或所有会话
- 所有参数都是可选的
- prompt的默认值为false。如果prompt为true,将显示“锁定会话”对话框
- password的默认值为空字符串(“”)
- lockallsessions的默认值为false,表示锁定当前会话,如果为True表示锁定所有会话
- 会话锁定时可以使用脚本操作(如发送命令).
- 语法
object.Lock([,prompt [,password, [,lockallsessions]]])
- 实例
crt.Session.Lock(False,"123",False)
Log 日志
- 介绍
- 允许或禁用日志
- 根据“start”参数的布尔状态启动或停止日志记录
- 启动日志记录时,可选的布尔“append”和“raw”参数可以设置为True,以打开日志文件进行追加或分别记录原始字符
- append和raw参数是可选的,如果未指定则为false(当“start”为false时(不记录日志),append和raw的值将被忽略)
- 语法
object.Log(start[, append[, raw]])
- 示例
file = r"D:\Users\liu\Desktop\LOG_CRT\LOG_20210422\test.txt"
crt.Session.LogFileName = file
crt.Session.Log(True, True, False)
LogUsingSessionOptions 日志选项
- 介绍
- 使用当前会话的日志记录选项启用日志记录
- 如果会话是临时会话,则将使用默认会话的日志记录选项
- 和使用Log启用日志不知道有什么区别
- 语法
object.LogUsingSessionOptions()
- 示例
crt.Session.LogUsingSessionOptions()
SetStatusText 设置文本状态
- 介绍
- 设置的文本会显示在CRT最下面的状态栏中
- 文本要使用字符串格式
- 语法
object.SetStatusText(text)
- 示例
crt.Session.SetStatusText("文本测试")
Unlock 解除锁定
- 介绍
解除当前或所有会话的锁定 - 语法
object.Unlock([,prompt [,password, [,unlockallsessions]]])
- 示例,使用密码解除锁定
crt.Session.UnLock(False,"123",False)
SessionConfiguration 对象
- 通过脚本访问会话配置
- 在连接之前更改现有会话中的设置
- 转换Excel电子表格以保存SecureCRT或SecureFX(如果已安装)会话
OpenSessionConfiguration 打开会话配置
- 介绍
- 加载指定会话的配置
- SessionPath是一个字符串参数,它是会话的相对路径。返回配置对象。如果未指定SessionPath,则返回默认会话的配置对象。
- 语法
object.OpenSessionConfiguration([SessionPath])
- 示例
objConfig1 = crt.OpenSessionConfiguration("Routers\Telnet\Session1")
方法
ConnectInTab 连接到会话
- 介绍
- 连接到选项卡或平铺会话窗口中的会话
- 此方法返回一个Tab对象
- 使用TN3270仿真的会话不支持ConnectionTab
- 语法
objTab = object.ConnectInTab()
- 示例
- 连接到会话管理器中定义的会话
crt.Session.ConnectInTab("/s IDC-204/Ubuntu-Test")
GetOption 获取指定选项值
- 介绍
- OptionName是一个字符串参数,它是选项的名称
- 会话和快速连接打开的会话可以,用脚本打开的会话测试不能获取
- 语法
varname = object.GetOption(OptionName)
- OptionName
选项 | 说明 |
---|
Username | 用户名 |
Description | 描述 |
- 示例
- 返回用户名
objConfig = crt.Session.Config
szUsername = objConfig.GetOption("Username")
crt.Dialog.MessageBox(szUsername)
Save 保存
- 介绍
- 保存配置
- 如果未提供SessionPath,则配置将保存到与所用配置对象关联的.ini文件中
- 如果提供的SessionPath与现有会话配置相同,则现有的.ini文件将被所用配置对象中包含的设置覆盖
- 如果提供的SessionPath不存在,则将在指定的会话路径中创建该名称的新会话
- 会话路径不是文件路径,而是相对于SecureCRT Connect对话框中显示的文件夹的路径,内置的“会话”文件夹是“根”路径
- 语法
object.save([SessionPath])
- 示例
objConfig = crt.Session.Config
objConfig.Save("Home\\test1")
SetOption 设置选项
- 介绍
- 设置指定的选项
- 如果选项是字符串类型,则应为值指定字符串
- 如果选项是多字符串(Z),则应为该值指定字符串数组
- 如果选项为DWORD(D),则值应为数字
- 如果出现错误,此方法将显示错误消息框
- 语法
object.SetOption(OptionName, Value)
- 示例
- 更新会话的描述信息
objTab = crt.GetScriptTab()
objConfig = objTab.Session.Config
arrNewDescription = []
arrNewDescription.append("当前会话的描述1")
arrNewDescription.append("当前会话的描述2")
objConfig.SetOption("Description", arrNewDescription)
- 使用会话"IDC\Server_FRP"的密码连接到会话"VM\temp"
config = crt.OpenSessionConfiguration("VM\\temp")
config1 = crt.OpenSessionConfiguration("IDC\\Server_FRP")
config.SetOption("Session Password Saved", 1)
config.SetOption("Password", config1.GetOption("Password"))
config.ConnectInTab()
Tab 标签
GetScriptTab 获取脚本所在的选项卡
- 介绍
- 返回启动脚本的选项卡或平铺会话窗口。
- 语法
object = crt.GetScriptTab()
- 示例
ScriptTab = crt.GetScriptTab()
crt.Dialog.MessageBox("选项卡序号是: " + str(ScriptTab.Index))
GetTabCount 获取选项卡数量
- 介绍
- 返回当前SecureCRT窗口中存在的选项卡或平铺会话窗口(已连接或未连接)的数量
- 语法
varname = crt.GetTabCount()
GetTab 获取选项卡
- 介绍
- 返回指定索引的tab对象
- 语法
varname = crt.GetTab(arg)
- 示例
Tab1= crt.GetTab(1)
GetActiveTab 获取活动选项卡
- 介绍
- 回与当前在GUI中选择的选项卡或平铺会话窗口关联的选项卡对象
- 语法
object = crt.GetActiveTab()
属性
Caption 标题
- 介绍
- 返回或设置指定选项卡对象的标题
- 设置选项卡或平铺会话窗口的标题
- 如果选项卡或平铺会话窗口处于活动状态,则设置主应用程序窗口的标题
- 语法
[ varname = ] tab.Caption
tab.Caption = newCaption
- 示例,设置活动选项卡的标题
Tab1= crt.GetActiveTab()
Tab1.Caption = "选项卡标题"
Index 索引
- 介绍
- 返回对象引用的选项卡对象的索引
- 标签页时,索引为标签面的序号
- 平铺会话时,选项卡对象的索引可能与平铺会话时的索引不匹配,但在平铺会话时将保持一致。
- 语法
object.Index
- 示例
Tab1= crt.GetActiveTab()
crt.Dialog.MessageBox(str(Tab1.Index))
Screen 屏幕
- 介绍
- 从tab对象获取一个Screen对象
- 语法
object = tab.Screen
- 示例
Tab1= crt.GetActiveTab()
object = Tab1.Screen
Session 会话
- 介绍
- 从tab对象获取一个Session对象
- 语法
object = tab.Session
- 示例
Tab1= crt.GetActiveTab()
object = Tab1.Session
方法
Activate 活动的
- 介绍
- 将对象引用的选项卡或平铺会话窗口置于前台
- 选项卡可以接收和发送文本,无论是否处于活动状态。此方法模拟用户单击选项卡或平铺会话窗口以激活
- 语法
object.Activate()
- 示例
Tab1 = crt.GetTab(1)
Tab1.Activate()
Clone 克隆
- 介绍
- 克隆的一个好处是不需要额外的身份验证
- 语法
cloneTab = object.Clone()
- 示例
Tab1 = crt.GetTab(1)
Tab1.Clone()
Close 关闭
- 介绍
- 通过对象关闭选项卡或平铺会话窗口
- 如果选项卡处于连接状态,会弹出对话框提示
- 无法关闭运行脚本的选项卡或平铺会话窗口
- 语法
object.Close()
- 示例
Tab1 = crt.GetTab(1)
Tab1.Close()
ConnectSftp 连接到sftp
- 介绍
- 基于选项卡创建一个sftp选项卡
- 语法
sftpTab = object.ConnectSftp()
- 示例
Tab1 = crt.GetTab(1)
Tab1.ConnectSftp()
Window 窗口对象
- 指的是CRT软件的窗口
- 介绍
- 返回对SecureCRT窗口对象的引用
- 语法
object = crt.Window
属性
Active 活动
- 介绍
- 如果SecureCRT的窗口是活动窗口,则返回True,否则返回False
- 语法
[ varname = ] crt.Window.Active
- 示例,返回CRT窗口是否处于前台
crt.Sleep(5000)
state = crt.Window.Active
crt.Dialog.MessageBox(str(state))
Caption 标题
- 介绍
- 返回或设置CRT窗口标题
- 语法
crt.Window.Caption [ = string ]
- 示例
crt.Window.Caption = "CRT窗口标题"
State 状态
- 介绍
- 返回一个数字,指示SecureCRT的应用程序窗口的状态
- 状态码
状态码 | 说明 |
---|
0 | 窗口隐藏 |
1 | 可见的(正常) |
2 | 最小化 |
3 | 最大化 |
- 语法
crt.Window.State
- 示例
crt.Dialog.MessageBox(str(crt.Window.State))
方法
Activate 激活
- 介绍
- 使CRT窗口为活动窗口
- 语法
crt.Window.Activate()
- 示例
crt.Sleep(5000)
crt.Window.Activate()
Show 显示
- 介绍
- 显示,隐藏,最小化,最大化CRT的窗口
- 状态码
状态码 | 说明 |
---|
0 | 窗口隐藏 |
1 | 可见的(正常) |
2 | 最小化 |
3 | 最大化 |
- 语法
crt.Window.Show(state)
- 示例,最大化窗口
crt.Window.Show(3)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)