secureCRT用vbs 检测错误打印到D盘
时间: 2023-08-03 20:03:35 浏览: 104
可以使用下面的代码实现将secureCRT的错误信息保存到D盘:
```
' 定义保存路径
Dim savePath
savePath = "D:\error.txt"
' 检测错误并保存到文件
If crt.Screen.WaitForString("Error", 1) Then
Dim fso, outFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set outFile = fso.CreateTextFile(savePath, True)
outFile.Write crt.Screen.Get(crt.Screen.CurrentRow, 1, crt.Screen.CurrentRow, crt.Screen.CurrentColumn)
outFile.Close
End If
```
这段代码会在secureCRT的输出结果中查找包含"Error"的字符串,并将其保存到D盘的error.txt文件中。如果文件不存在则会自动创建。可以根据实际需要修改保存路径和文件名。
相关问题
secureCRT编写VBS脚本进行宏调用,方法用“Sub main”,当打印信息显示“boot”时,自动输入交互指令“c”,当打印信息出现“℃”时,利用自带的截图软件截图并将图片存在“D盘666文件中”,使用SecureCRT提供的API
在SecureCRT中使用Visual Basic Script (VBS) 编写宏来实现这样的自动化任务,你需要做以下几步:
1. **创建VBS脚本**:
首先,在SecureCRT中打开"Options" > "Session Options" > "Automation",启用"Enable Automation Server"。然后,在"Customize Command Window"中,选择"Macro Language"并选择VBS作为宏语言。
2. **Sub Main 宏定义**:
创建一个新的VBS宏,例如命名为"AutoInputAndCapture.vbs",添加以下内容:
```vbscript
Sub main()
While True
Set objScreen = CreateObject("SecurCRT.Screen")
strOutput = objScreen.GetConsoleText(0, 0, objScreen.BufferSize.X, objScreen.BufferSize.Y)
If InStr(strOutput, "boot") Then
WScript.Sleep 1000 ' 稍等片刻再输入
objScreen.SendKeys "^c" ' 发送Ctrl+C快捷键模拟输入"c"
ElseIf InStr(strOutput, "℃") Then
Dim objSnippingTool
Set objSnippingTool = CreateObject("WScript.Shell")
objSnippingTool.SendKeys "%s" ' 发送截图命令
objSnippingTool.SendKeys "d:\666\" ' 目标路径
objSnippingTool.SendKeys "capture.png" ' 文件名
End If
Wend
End Sub
```
3. **启动宏**:
在SecureCRT命令行窗口,运行`RunMacro "AutoInputAndCapture"` 来启动这个脚本。
注意:
- 这段代码依赖于Windows操作系统和SecureCRT的内置功能,如果你是在Linux或其他环境中,可能需要调整部分操作。
- 使用VBS的SendKeys方法时要小心,因为它们可能需要管理员权限。
secureCRT编写VBS脚本调用宏,方法用“Sub main”,当打印信息显示“boot”时,自动输入交互指令“c”,当打印信息出现“℃”时,利用自带的截图软件截图并将图片存在“D盘666文件中”
SecureCRT是一款终端仿真程序,它支持通过VBS (Visual Basic Scripting) 脚本来自动化一些任务。要在VBS脚本中编写这样的功能,你可以创建一个名为"main"的子过程(Sub main),如下所示:
```vbs
Sub main()
Dim inputPrompt As String
Dim screenshotPath As String
' 模拟监控打印信息
inputPrompt = InputBox("当前打印信息:", "SecureCRT Macro")
' 判断打印信息并执行相应的操作
If inputPrompt = "boot" Then
' 当打印信息显示 "boot" 时,自动输入 "c"
WScript.Sleep 500 ' 延迟一下防止立即输入
SendKeys "{c}"
ElseIf InStr(inputPrompt, "℃") > 0 Then
' 当打印信息包含 "℃" 时,截图并保存至指定路径
screenshotPath = "D:\666\secureCRT_Screenshot_" & Now() & ".png"
Call CaptureScreen screenshotPath ' 假设有一个CaptureScreen函数用于截图
End If
End Sub
Function CaptureScreen(ByVal savePath As String)
' 这里是一个假设的函数,实际的屏幕捕捉可能需要使用如AutoIt等库或API
' 在此函数中,你需要将屏幕截取到指定位置,并保存为PNG格式
' CaptureScreen代码未提供,因为这取决于具体的库或API
' 例如:WinAPI, AutoIt,或者SecureCRT提供的API
End Function
```
要实现这个脚本,你需要先将上述代码粘贴到SecureCRT的脚本编辑器中,然后配置好触发事件(比如监听特定打印设备或命令)。保存脚本后,在需要的时候启动`main`子过程。
阅读全文