本人为了研究自动upgrade,写了一个脚本。在win7系统自带CMD中运行,无任何问题。编写成脚本后,crt.Screen.Send "/s/misc/eqid set "MTQ"" & vbcr这一行总是出故障。求大神指点,非常感激。
附脚本文件:
$language = "VBScript"
$interface = "1.0"
Sub Main
crt.Screen.Synchronous = True
Dim a,b,c
Dim row,d,row1,e
crt.Screen.Send "root" & vbcr
crt.Screen.WaitForString "Password:"
crt.Screen.Send "root" & vbcr
crt.Screen.WaitForString "ONT>"
crt.Screen.Send "enable" & vbcr
crt.Screen.WaitForString "ONT>"
crt.Screen.Send "/s/misc/stopreboot" & vbcr
crt.Screen.WaitForString "ONT>"
crt.Screen.Send "/s/misc/eqid set "MTQ"" & vbcr
crt.Screen.WaitForString "ONT>"
crt.Screen.Send "/s/misc/act_img get" & vbcr
crt.Screen.WaitForString "ONT>"
row = crt.screen.CurrentRow-1
d = crt.screen.Get(row, 10, row, 11)
crt.Screen.Send "/s/misc/commit_img get" & vbcr
crt.Screen.WaitForString "ONT>"
crt.Screen.Send "/s/fs/upgrade ontversion 192.168.1.253 ont ont" & vbcr
crt.Screen.WaitForString "ONT>"
Do
crt.Screen.Send "/s/misc/act_img get" & vbcr
crt.Screen.WaitForString "ONT>"
row1 = crt.screen.CurrentRow-1
e = crt.screen.Get(row1, 10, row1, 11)
If (d=e<>False) Then
c=1
crt.sleep(3000)
Else
c=2
End If
crt.Screen.Send d & vbcr
crt.Screen.WaitForString "ONT>"
crt.Screen.Send e & vbcr
crt.Screen.WaitForString "ONT>"
crt.Screen.Send c & vbcr
crt.Screen.WaitForString "ONT>"
Loop Until c=2
crt.Screen.Send "/s/misc/commit_img get" & vbcr
crt.Screen.WaitForString "ONT>"
crt.Screen.Send "/s/misc/clearcfg" & vbcr
crt.Screen.WaitForString "ONT>"
crt.Screen.Send "/s/misc/eqsn get" & vbcr
crt.Screen.WaitForString "ONT>"
crt.Screen.Send "/s/s" & vbcr
crt.Screen.WaitForString "/system/shell>"
crt.Screen.Send "reboot" & vbcr
End Sub