crt.screen.waitforstring
时间: 2023-04-14 13:01:37 浏览: 1017
crt.screen.waitforstring是SecureCRT中的一个函数,用于等待屏幕上出现指定的字符串。当屏幕上出现该字符串时,函数会返回True,否则会一直等待直到超时。该函数常用于自动化脚本中,以便在屏幕上出现特定的信息时执行下一步操作。
相关问题
crt.Screen.Send "enable" & chr(13) crt.Sleep 500 crt.Screen.Send "config" & chr(13) crt.Sleep 500 crt.Screen.Send "show inter gi 1/0/1" & chr(13) crt.Sleep 3000 crt.Screen.WaitForString "failed", 1 if crt.Screen.MatchIndex != -1: sys.exit(0) else: crt.Screen.Send "reboot" & chr(13) crt.Sleep 500 crt.Screen.Send "y" & chr(13) crt.Sleep 240000
根据你提供的代码,以下是完整的修正后的代码示例:
```python
import time
import sys
crt.Screen.Synchronous = True
# 发送命令
crt.Screen.Send("enable\r")
crt.Sleep(500)
crt.Screen.Send("config\r")
crt.Sleep(500)
crt.Screen.Send("show inter gi 1/0/1\r")
crt.Sleep(3000)
# 等待屏幕出现"failed"
crt.Screen.WaitForString("failed", 1)
if crt.Screen.MatchIndex != -1:
# 匹配到了"failed"
sys.exit(0)
else:
# 未匹配到"failed"
crt.Screen.Send("reboot\r")
crt.Sleep(500)
crt.Screen.Send("y\r")
crt.Sleep(240000)
crt.Screen.Synchronous = False
```
在修正后的代码中,我将你提供的命令发送部分保留,并在命令之后添加了相应的等待和条件判断逻辑。如果屏幕匹配到了"failed",则使用 `sys.exit(0)` 退出程序。如果未匹配到"failed",则发送重启命令和确认操作,并使用 `crt.Sleep(240000)` 延迟 240 秒(即 4 分钟)。
请注意,示例中的延迟时间需要根据你的具体需求进行调整。另外,确保在使用 SecureCRT 脚本时已经正确连接到设备,并且命令和等待时间设置正确。
希望以上代码能帮助到你!如果你有任何其他问题,请随时提问。
Sub Main Dim index index = 1 Dim indexTe indexTe = 1 Dim test test = 1 Dim k k=1 Do crt.Screen.Send "!=================Tested " & k & " times==================" &vbCR crt.Screen.Send "enable"&vbCR crt.Screen.Send "ruijie@123"&vbCR for index=1 to 3 crt.Screen.Send "debug su" &vbCR crt.Screen.Send "execute diagnose-cmd sh tail tail -n +5 notes.log /tmp/html/ddi/server/fileupload.php"&vbCR crt.Screen.Send "/" & index &vbCR 'crt.Screen.WaitForString "changed state to up" crt.sleep 5000 If (crt.Screen.WaitForString ("//#!! 注意",5)<>True) Then test = 1 Else test = -1 End If
这段代码是一个VBScript程序的主函数Sub Main。它包含了一个循环结构,并在循环中进行一系列操作。具体来说,它使用了一个变量k作为循环的计数器,并在每次循环开始时发送一些命令到终端窗口。在循环中,它发送了一些命令,并使用条件语句来判断是否等待到了特定的字符串。根据等待到的结果,它会将变量test设置为1或-1。
请注意,这段代码中的一些命令(如crt.Screen.Send)是针对特定终端窗口的操作,可能需要特定的终端模拟器才能运行。另外,代码中的某些部分(如crt.sleep)可能需要根据具体需求进行调整。如果您有任何关于这段代码的具体问题,请随时提问。
阅读全文