标题:求助一个在SecureCRT执行的循环嵌套语句
只看楼主
key9527
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2022-11-2
结帖率:0
已结贴  问题点数:20 回复次数:5 
求助一个在SecureCRT执行的循环嵌套语句
因为设备启动时出现不定的多次启动,因此我希望前面的语句可以循环执行到满足条件,代码如下:
Sub Main
for i = 1 to 500
Do
crt.Screen.WaitForString ("Hit ESC to stop autoboot: 60 ") // 设备启动时会出现选择对话框
crt.Screen.Send chr(27) //chr27是按ESC的意思
crt.Screen.WaitForString( "Option?" )
crt.Screen.Send "1" & chr(13)
loop until crt.Screen.WaitForString ("sw0 login: ") //关键句就在这里,每次启动都要按ESC然后选择1,设备才会继续往下走到 sw0 login:那里,所以我做了一个条件循环,目的是只要没达到条件就一直循环到DO下面的语句执行
crt.Screen.Send "root" & chr(13) //达到条件后输入账户名
next
End Sub


实际运行的时候do loop不起作用,如果只启动一次,那么脚本会顺利执行结束,如果启动两次的话,还是会卡在“Hit ESC to stop autoboot: 60 ”这一句,也没有大神看出问题在哪?
搜索更多相关主题的帖子: Screen 循环 执行 启动 crt 
2022-11-02 19:31
yuma
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:银河系
等 级:贵宾
威 望:33
帖 子:1883
专家分:2904
注 册:2009-12-22
得分:10 
Sub Main()
I = 0
Do
I = I + 1
crt.Screen.WaitForString ("Hit ESC to stop autoboot: 60 ") // 设备启动时会出现选择对话框
crt.Screen.Send chr(27) //chr27是按ESC的意思
crt.Screen.WaitForString ("Option?")
crt.Screen.Send "1" & Chr(13)
Loop Until I = 500
crt.Screen.WaitForString ("sw0 login: ")
crt.Screen.Send "root" & chr(13) //达到条件后输入账户名
Next
End Sub

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2022-11-03 19:09
key9527
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2022-11-2
得分:0 
以下是引用yuma在2022-11-3 19:09:05的发言:

Sub Main()
I = 0
Do
I = I + 1
crt.Screen.WaitForString ("Hit ESC to stop autoboot: 60 ") // 设备启动时会出现选择对话框
crt.Screen.Send chr(27) //chr27是按ESC的意思
crt.Screen.WaitForString ("Option?")
crt.Screen.Send "1" & Chr(13)
Loop Until I = 500
crt.Screen.WaitForString ("sw0 login: ")
crt.Screen.Send "root" & chr(13) //达到条件后输入账户名
Next
End Sub

多谢。可能是我没说清楚,我的意思是,我上一次电,设备可能会随机启动两次或一次,只要启动的时候才会出现对话框,而如果不选择的话,设备就会一直停下来等你输入,所以中间我做的DO循环是个条件循环,就是要应对可能是一次或两次的情况。
2022-11-04 09:41
yuma
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:银河系
等 级:贵宾
威 望:33
帖 子:1883
专家分:2904
注 册:2009-12-22
得分:0 
如果要设备只启动一次,可以用布尔值来判断。

这样,设备只能启动一次。

[此贴子已经被作者于2022-11-4 18:43编辑过]


心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2022-11-04 18:41
cwa9958
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:247
专家分:1228
注 册:2006-6-25
得分:10 
循环语句执行是很快的,又是连续执行的。
在循环里加一条
DoEvents
试试看
2022-11-05 10:38
key9527
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2022-11-2
得分:0 
多谢各位,目前我在用其他办法,各位的办法我也会试试看。
2022-11-07 08:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-510516-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.159207 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved