secueCRT脚本小试牛刀
secureCRT可以使用脚本自动化执行操作,如登录脚本。支持vbs、python(6.6以上版本才支持python,且目前最高仅支持python 3.9)和jscript。据说还可以录制操作,没试过。secureCRT版本为9.10。
secureCRT内置了一些对象,入crt,具体用法可见官网Automation Academy、帮助,或其他网上资料。
尝试了vbs和python,功能一样:
#$language = "VBScript" #$interface = "1.0" crt.Screen.Synchronous = True Sub Main if crt.Arguments.Count <1 Then exit sub End If crt.Screen.WaitForString "[ 0 ]" crt.Screen.Send "/" & crt.Arguments(0) & vbcr 'ip unicodeChar11 = ChrW(&H624B) unicodeChar12 = ChrW(&H52A8) unicodeChar13 = ChrW(&H8F93) unicodeChar14 = ChrW(&H5165) inputText = unicodeChar11 & unicodeChar12 & unicodeChar13 & unicodeChar14 crt.Screen.WaitForString ChrW(&H8FD4) & ChrW(&H56DE) i = 0 quit = false bracketContent = "0" do str = crt.Screen.Get(i,0,i,20) i = i+1 If InStr(str, inputText) > 0 Then start = InStr(str, "[") endPos = InStr(start + 1, str, "]") bracketContent = Mid(str, start + 1, endPos - start - 1) 'crt.Dialog.MessageBox(bracketContent) End If If InStr(str, "[ r ]") > 0 Then quit=true End If loop until quit=true crt.Screen.Send bracketContent & vbcr If crt.Arguments.Count >=2 Then crt.Screen.Send crt.Arguments(1) & vbcr Else exit sub End If 'Set WshShell = CreateObject("WScript.Shell") 'crt.Screen.Send WshShell.ExpandEnvironmentStrings("%PASSWD%") & vbcr If crt.Arguments.Count >=3 Then crt.Screen.Send crt.Arguments(2) & vbcr Else exit sub End If End Sub
#$language = "Python" #$interface = "1.0" crt.Screen.Synchronous = True def Main(): if crt.Arguments.Count<1: return crt.Screen.WaitForString("[ 0 ]") crt.Screen.Send("/" + crt.Arguments[0] + "\n") strSDSR = chr(0x624B) + chr(0x52A8) + chr(0x8F93) + chr(0x5165) strFH = chr(0x8FD4) + chr(0x56DE) crt.Screen.WaitForString(strFH) i = 0 quit = False bracketContent = "0" while True: str = crt.Screen.Get(i,0,i,20) i = i+1 if str.find(strSDSR)>0: crt.Dialog.MessageBox(str) start=str.find("[") end=str.find("]") bracketContent = str[start + 1:end] #crt.Dialog.MessageBox(bracketContent) if str.find("[ r ]") > 0: break crt.Screen.Send(bracketContent+"\n") if crt.Arguments.Count >=2: crt.Screen.Send(crt.Arguments[1]+"\n") if crt.Arguments.Count >=3: crt.Screen.Send(crt.Arguments[2]+"\n") Main()
mac版本没有vbs,只能用python,可能会遇到secreCRT找不到合适的python解析器的问题,SecureCRT 对 Python 版本有严格的兼容性要求,并非所有版本都能用,对于 SecureCRT 9.x 版本,通常最高只支持到 Python 3.8。如果你的 Python 版本过高(如 3.12, 3.13),SecureCRT 一样会报错。这时候就需要手动创建 SecureCRT 需要的链接结构,我这里就把3.9的安装伪装成3.8的喂给secureCRT
ln -s /usr/local/Cellar/python@3.9/3.9.25/Frameworks/Python.framework/Versions/3.9 /opt/homebrew/Frameworks/Python.framework/Versions/3.8
浙公网安备 33010602011771号