在ruby中生成一个进程,捕获stdout,stderr,获取存在状态

And*_*ock 5 ruby

我想从ruby rake脚本运行一个可执行文件 foo.exe

我希望将输出STDOUTSTDERR输出foo.exe直接写入控制台我正在运行rake任务.

当进程完成时,我想将退出代码捕获到变量中.我该如何实现这一目标?

我一直在玩backticks,process.spawn,system但我不能得到我想要的行为,只有部分

更新:我在Windows上,在标准命令提示符下,而不是cygwin

Gar*_*ler 8

system得到STDOUT你想要的行为.它还返回true零退出代码,这可能很有用.

$?填充有关上次system呼叫的信息,以便您可以检查退出状态:

system 'foo.exe'
$?.exitstatus
Run Code Online (Sandbox Code Playgroud)

我用这些东西的组合Runner.execute_command作为例子.