没有弹出命令提示符的Ruby系统调用(在Windows上)

时间:2012-10-02 04:15:03

标签: ruby system command-prompt

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

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

有谁知道怎么做?

在SO上有很多类似的问题但没有一个能够解决这个问题,如果我使用python这个问题/答案会有所帮助(http://code.activestate.com/lists/python-list/46042/)但到目前为止我的搜索还没有找到方法用红宝石完成这个。

更新:这里有一个这样的线程Hiding curl Window on Windows很接近,但是那里唯一可行的解​​决方案也不允许你获得标准输出。

1 个答案:

答案 0 :(得分:2)

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

gem install win32-open3

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

  

Windows版本与open3有几点不同   (哪一个       也适用于Open4.popen4) - 模式标志和show标志。为了       模式,您可以指定't'(文本,默认值)或'b'(二进制)作为       第二个论点。 对于show标志,您可以指定true或false,       它将显示控制台窗口,具体取决于您的值       通过。 默认值为false

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