我有一个批处理文件,它启动一个 telnet 会话并使用 vbs 脚本执行一些命令:
start telnet.exe another.hostname
timeout /t 1 /nobreak > NUL
cscript c:\scripts\sendtelnet.vbs 1
我的 vbs 脚本如下所示:
WScript.sleep 1000
arg = Wscript.Arguments.Item(0)
WScript.sleep 1000
cmd = "RUN CMD D "&arg&"{ENTER}"
WScript.sleep 1000
set OBJECT=WScript.CreateObject("WScript.Shell")
WScript.sleep 6000
OBJECT.SendKeys "administrator{ENTER}"
WScript.sleep 200
OBJECT.SendKeys "mypass{ENTER}"
WScript.sleep 200
OBJECT.SendKeys cmd
WScript.sleep 5000
OBJECT.SendKeys "QUIT{ENTER}"
WScript.sleep 500
OBJECT.SendKeys "{ENTER}"
WScript.sleep 100
OBJECT.SendKeys " "
我可以运行这个测试大约 10 次,但它只会在 10 次中运行大约 8 次。我目睹了测试失败,发生的情况是 telnet 窗口打开了,但它挂在“用户名”提示符上,最终 telnet 会话超时并且窗口永远不会关闭。
为什么这只有时会起作用?我是否需要增加睡眠时间?我试着睡了 6000 毫秒,它似乎足够长了。我一直在尝试很多东西,但我一直卡在这部分,我愿意在这一点上尝试任何东西,请任何建议?