Joel,

this definitely is *not* ruby-related, for I have seen similar
anomalies with perl and python. Apparently, when Windows relies
on a script's extension to guess which interpreter to run it
through, it doesn't properly take IO redirection into account.
You can circumvent this with a small, "driver" batch file, though:

----file mytest.rb----
print "foo\n"
----file mytest.bat----
@echo off
ruby.exe mytest.rb %1 %2 %3 %4 %5
--------------------
C:\TEMP> mytest.bat > mytest.out
C:\TEMP> type mytest.out
foo

> Why would 'test.rb' and 'ruby test.rb' behave differently? Something I
> don't understand about DOS (very possible :) ?

Well, neither do I!

Hope this helps,

Bernard.

PS: the above holds true on NT4, but I just checked on Win2000,
to discover that the problem simply does not exist on this platform.
Ah, finally a compelling reason to upgrade: the Redmontians fixed
their command-line interpreter!