2

我正在尝试整理一个使用 ruby​​w.exe (1.8.7) 执行的 ruby​​ 脚本内部的多个系统调用的进程。

据我所知,rubyw.exe 的主要原因是它不会弹出命令提示符来分散用户的注意力。然而,该进程内的系统调用似乎仍然会生成这些弹出窗口,这对于该进程脚本的用户来说非常分散注意力。

有谁知道如何做到这一点?

SO上有很多与此类似的问题,但没有一个可以完全回答这个问题,如果我使用python,这个问题/答案会有所帮助(http://code.activestate.com/lists/python-list/46042/)但是所以到目前为止,我的搜索还没有找到用 ruby​​ 完成此任务的方法。

更新:这里有这个线程Hiding curl Window on Windows已关闭,但唯一可行的解​​决方案也不允许您获得标准输出。

4

1 回答 1

2

我最终选择了 win32-open3 gem。因为 fork 没有在 Windows 系统上实现,所以你不能使用内置的 open3,你需要做一个

gem install win32-open3

但是,这带有您可以传递给调用方法的标志,特别是

open3 的 Windows 版本(也适用于 Open4.popen4)有几个不同之处 - 模式标志和显示标志。对于模式,您可以指定“t”(文本,默认值)或“b”(二进制)作为第二个参数。对于 show 标志,您可以指定 true 或 false,这将显示或不显示控制台窗口,具体取决于您传递的值。 默认值为 false

这个特定脚本的用户不再被 15 个不断窃取焦点的 cmd 窗口轰炸,所以....赢了?

于 2012-10-02T21:43:22.700 回答