crt脚本退出命令_SecureCRT脚本-连接多个设备并发送命令
#$language = "VBScript"
#$interface = "1.0"
Dim g_szErrors
Sub Main()
Dim objFso, objShell, objTextStream, szLine
Dim vSessionsArray()
Dim nSessionCount
nSessionCount = 0
' 给予数组资源大小为5,后面会以5为基数增加,好处是避免太浪费动态数组占用的内存资源
ReDim vSessionsArray(5)
' 读取txt文件每行数据(包括连接设备Ip,用户名,密码等)到数组中,用于后面的连接
Set objFso = CreateObject("Scripting.FileSystemObject") '创建文件对象objFso
Set objShell = CreateObject("WScript.Shell") '创建shell对象,用于动态获取"我的文档"的路径
Dim szMyDocs, szSessionsFile '定义变量szMyDocs用于存放"我的文档"的路径;szSessionsFile 存放txt文件路径
szMyDocs = objShell.SpecialFolders("MyDocuments") '获取我的文档路径,存放进szMyDocs变量
szSessionsFile = szMyDocs & "\SessionList.txt" '获取txt文件路径,存放进szSessionsFile变量
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
'第二个参数: 1 只读方式打开; 2 写方式打开; 8 文件末尾写操作 ;false 没txt文件不创建,如果true就创建txt文件
Set objTextStream = objFso.OpenTextFile(szSessionsFile, 1, false)
Dim szSession
Do While Not objTextStream.AtEndOfStream '判定是否到最后无数据一行
szSession = "" '将路径值置空
szSession = Trim(objTextStream.ReadLine) '去掉前后空字符串,将读取到的行值赋值给变量
' Don't add empty lines/sessions
if szSession <> "" then
'检测数组下标是否大于等于计算器值,目的:数组下标永远比实际存储值大5的存储空间
if UBound(vSessionsArray) >= nSessionCount then
redim preserve vSessionsArray(nSessionCount + 5)
end if
' 将每行的值赋值给数组,计数器按1递增
vSessionsArray(nSessionCount) = szSession
nSessionCount = nSessionCount + 1
end if
Loop
objTextStream.Close '关闭txt文件
'连接会话并执行命令,枚举数组中每个元素
For Each szSession in vSessionsArray
if szSession = "" then exit for
'MsgBox "Connecting to Session: " & szSession
'on error resume next 后面的代码出现错误会继续运行后续代码
'on error goto 0 终止容错机制
On Error Resume