-> 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窗口 . 我有一些关于原因的疯狂理论,但我想首先隐藏模块的输出,看看是否能修复它 .

当然,我总是乐于接受新的想法 .

Update

我为我的模块添加了一个选项,只是不打印状态消息..所以我可以通过调用我的方法以0或1作为参数来切换它 . This article帮我创建了一个用于打印的宏(尽管我使用的是一个静态int,它在运行时由方法's input var rather than another macro that must be set at compile time) so it'设置,非常漂亮 .

但是,它没有帮助 .

好的,所以更多的测试显示大约5分钟似乎是wscript将睡觉的最大值,并且仍然能够向目标应用程序发送击键 . 不知道为什么没有谷歌搜索我已经完成了任何形式的限制,但是,你去 .

我所学到的是,我可以在启动模块后退出并等待调用批处理文件 . 所以它等待并等待并等待更多(延迟完全是随意的,根据对过去运行的观察来选择 - 差,我知道,但它是一个开发脚本,每年运行大约2次,这很好,哎呀,它已经是一个对当前进程的巨大改进)然后继续进行下一个任务 . 似乎要做的伎俩!

仍然感到困惑,为什么wscript在大约5分钟后不能正常工作 .