我正在尝试写一个宏来加速测试的设置。
我要做的就是向我的主板发送一堆配置命令,并在每个命令之后等待一个“ok”。最后一个命令是启动测试的命令,在此之后,我想等待30秒以获得特定的答案。问题是,即使我设置了超时,所有命令都会一个接一个地发送,而不等待超时,测试一开始就会结束。我是不是遗漏了什么?
下面是我的代码:
send 'command 1'
timeout = 5 ;timeout set to 5 seconds
wait 'ok'
send 'command 2'
timeout = 5 ;timeout set to 5 seconds
wait 'ok'
send 'command 3'
timeout = 5 ;timeout set to 5 seconds
wait 'ok'
send 'command 4'
timeout = 5 ;timeout set to 5 seconds
wait 'ok'
send 'command 5'
timeout = 5 ;timeout set to 5 seconds
wait 'ok'
send 'command 6'
timeout = 5 ;timeout set to 5 seconds
wait 'ok'
send 'test start'
timeout = 30 ;timeout set to 30 seconds
wait 'the response I want'
if result = 1 goto pass
if result = 0 goto fail发布于 2021-04-29 20:40:05
在寻找不同的问题时偶然发现了你的问题。
Timeout用于表示“如果在X时间内没有完成,则继续”,并且只需要设置一次。您还希望在发送命令之前对其进行设置。
在您的情况下,它将是
Timeout = 5
Send 'Command'
Wait 'OK'
Send 'Command'
Wait 'OK'
Timeout = 30
Send 'Command'
Wait 'OK'您可能还想使用MPause在它们之间添加一个轻微的停顿,以防止它们像旧的调制解调器那样彼此跌跌撞撞。
Send 'Command'
Wait 'OK'
MPause 50
Send 'Command'
Wait 'OK'根据您所做的工作,将发送和等待更改为SendLn和WaitLn可能也是值得的,它们将发送带有命令的新行,并等待带有新行的响应,这是很常见的。
不过,警告一下,TeraTerm有点乱七八糟的bit,而且有一点局限性。如果你能用真正的语言,我会这么做的。
https://stackoverflow.com/questions/65957856
复制相似问题