Ruby的标准popen3模块在Windows上不起作用。是否有维护的替换,允许分离stdin,stdout和stderr?
答案 0 :(得分:5)
POpen4 gem在unix和Windows之间有一个通用接口。以下示例(来自他们的网站)就像一个魅力。
require 'rubygems'
require 'popen4'
status =
POpen4::popen4("cmd") do |stdout, stderr, stdin, pid|
stdin.puts "echo hello world!"
stdin.puts "echo ERROR! 1>&2"
stdin.puts "exit"
stdin.close
puts "pid : #{ pid }"
puts "stdout : #{ stdout.read.strip }"
puts "stderr : #{ stderr.read.strip }"
end
puts "status : #{ status.inspect }"
puts "exitstatus : #{ status.exitstatus }"
答案 1 :(得分:1)
popen3适用于Windows上的MRI 1.9.x.见http://en.wikibooks.org/wiki/Ruby_Programming/Running_Multiple_Processes