-> version
VxWorks (for Company MMC-C PPC82XX F2000) version 5.5.2.
Kernel: WIND version 2.6.
龙卷风版似乎是tornado2.2.2_PPC。
请耐心等待,因为VxWorks对我来说是全新的。
我有一个模块,我已经加载了'ld< mymodule.out',然后调用方法'mymodule()'。
问题是我想将该模块的所有输出(它产生一个定期printf的状态信息的任务产生)指向null或等效。它不会在客户机器上运行,因此“一次性”方法就可以了。
背景:我正在尝试做的是将telnet会话自动化到框中,加载并运行模块,然后在完成后注销。使用wscript自动化telnet,除了在脚本完成时没有注销,它工作得很好!至于为什么我在启动这个过程时没有注销,我不确定。如果我删除该调用,telnet会话打开并关闭就好了。看看:
:: :::::::::::::::::::::::::::::::::::::::::::::
:: http://www.antionline.com/showthread.php?264924-Scripting-windows-Telnet
:: temp_SendKeys.VBS will contain the "commands"
ECHO.set handler=WScript.CreateObject("WScript.Shell") >temp_SendKeys.VBS
ECHO.WScript.echo now() >>temp_SendKeys.VBS
ECHO.handler.run("Telnet") >>temp_SendKeys.VBS
ECHO.WScript.sleep 1500 >>temp_SendKeys.VBS
:: :::::::::::::::::::::::::::::::::::::::::::::
:: Open Connection To Telnet Host
ECHO.handler.SendKeys "open %Server% 2002~" >>temp_SendKeys.VBS
ECHO.WScript.sleep 1500 >>temp_SendKeys.VBS
:: :::::::::::::::::::::::::::::::::::::::::::::
:: Send Login Name
ECHO.handler.SendKeys "system~" >>temp_SendKeys.VBS
ECHO.WScript.sleep 1500 >>temp_SendKeys.VBS
:: Send Password
ECHO.handler.SendKeys "default~" >>temp_SendKeys.VBS
ECHO.WScript.sleep 2000 >>temp_SendKeys.VBS
:: :::::::::::::::::::::::::::::::::::::::::::::
:: Send Stuff to be done
ECHO.handler.SendKeys "unld ""MyModule.out""~" >>temp_SendKeys.VBS
ECHO.WScript.sleep 1000 >>temp_SendKeys.VBS
ECHO.handler.SendKeys "ld < MyModule.out~" >>temp_SendKeys.VBS
ECHO.WScript.sleep 1000 >>temp_SendKeys.VBS
ECHO.handler.SendKeys "xdelete ""*data.txt""~" >>temp_SendKeys.VBS
ECHO.WScript.sleep 3000 >>temp_SendKeys.VBS
ECHO.handler.SendKeys "myModule()~" >>temp_SendKeys.VBS
ECHO.WScript.echo "sleeping 1080000ms (18min)" >>temp_SendKeys.VBS
ECHO.WScript.sleep 1080000 >>temp_SendKeys.VBS
:: :::::::::::::::::::::::::::::::::::::::::::::
:: Logout
ECHO.handler.SendKeys "~~exit~" >>temp_SendKeys.VBS
ECHO.WScript.sleep 1000 >>temp_SendKeys.VBS
ECHO.handler.SendKeys "quit~" >>temp_SendKeys.VBS
ECHO.WScript.sleep 1000 >>temp_SendKeys.VBS
ECHO.WScript.echo now() >>temp_SendKeys.VBS
:: Run the script
cscript//nologo temp_SendKeys.VBS
pause
如果我在“发送要完成的东西”部分中注释掉最后三行,则脚本可以正常工作。有了这些行,退出和退出命令似乎不会被执行。我甚至没有看到文本回显到telnet窗口。我有一些关于原因的疯狂理论,但我想首先隐藏模块的输出,看看是否能修复它。
当然,我总是乐于接受新想法。
更新:
我在模块中添加了一个选项,只是不打印状态消息..所以我可以通过调用我的方法以0或1作为参数来切换它。 This article帮我创建了一个用于打印的宏(虽然我使用了一个静态int,它是在运行时由方法的输入var而不是另一个必须在编译时设置的宏设置的),所以它都很漂亮。
但是,它没有帮助。
好的,所以更多测试显示大约5分钟似乎是wscript将睡眠的最大值,并且仍然能够向目标应用程序发送击键。不知道为什么我没有用谷歌搜索发现任何形式的限制,但是,你去了。
我所学到的是,我可以在启动模块后退出并等待调用批处理文件。所以它等待并等待并等待更多(延迟完全是随意的,根据对过去运行的观察来选择 - 很差,我知道,但它是一个开发脚本,每年运行大约2次,这很好,哎呀,它已经是一个对当前进程的巨大改进)然后继续进行下一个任务。似乎可以做到这一点!
仍然感到困惑,为什么wscript在大约5分钟后不能正常工作。