From: Shea Martin Date: 2006-03-15T01:23:46+09:00 Subject: Re: popen broken in win32? Shea Martin wrote: > I am running a visual studio command line build via IO.popen, like so: > > IO.popen("devenv my_solution.sln /rebuild 'release Win32'") do | pipe | > pipe.each_line { |line| puts line } > end > > While if I run this command in a cmd window, I get hundreds of lines of > output. I can redirect the output on the command line like this: > devenv my_solution.sln /rebuild 'release Win32 > output.txt, and I don't > lose any output. So I am pretty sure the build output is going to > STDOUT, not STDERR. > > ruby -v > ruby 1.8.4 (2005-12-24) [i386-mswin32] > > I have also tried replacing the pipe.each_line with str = pipe.read, but > got the same results. > > Thanks, > > ~S The solution to make it work seems to be this: l_cmd = "devenv my_solution.sln /rebuild 'release Win32'" IO.popen("cmd.exe", IO::RDWR) do | pipe | pipe.puts l_cmd pipe.each_line { |line| puts line } end I am assuming that this is a bug, and not a 'feature'. ~S