答案1
我发现此链接,这似乎或多或少回答了这个问题,尽管上面的 Linux 脚本工作得更好。我发现最后的进程终止代码不能正常工作,所以我把它拿出来,一切就都好了。我还根据下面的讨论更改了服务命令,最后得到:-
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "cmd"
WScript.Sleep 100
WshShell.AppActivate "C:\Windows\system32\cmd.exe"
WScript.Sleep 1000
WshShell.SendKeys "telnet 192.168.0.1~"
WScript.Sleep 1000
WshShell.SendKeys "admin~"
WScript.Sleep 1000
WshShell.SendKeys "admin~"
WScript.Sleep 2000
WshShell.SendKeys "wan set service pppoa_0_38_0_d --protocol pppoa --conntrigger manual~"
WScript.Sleep 12000
WshShell.SendKeys "~"
WScript.Sleep 1000
WshShell.SendKeys "wan set service pppoa_0_38_0_d --protocol pppoa --conntrigger always~"
WScript.Sleep 6000
WshShell.SendKeys "~"
WScript.Sleep 1000
WshShell.SendKeys "logout~"
WScript.Sleep 6000
WshShell.SendKeys "~"
WScript.Sleep 1000
WshShell.SendKeys "exit~"
您只需将其复制到具有后缀的文件中.vbs
,然后编辑它以更新路由器的 IP 地址、登录用户和密码以及服务名称和协议。对于后者,您需要telnet
手动登录并输入:
wan show service
在您的cmd
脚本中,使用以下命令调用已编辑的脚本:
start [/wait] reconnect.vbs
/wait
如果您希望在继续执行下一个命令之前脚本完成,请使用。
我发现的一个问题是,如果在路由器在线时调用它,它会处于断开连接状态,但增加两次服务调用之间的延迟可以解决这个问题,您可能需要调整这个或其他一些延迟。