From: "nobu (Nobuyoshi Nakada)" Date: 2013-06-22T10:11:34+09:00 Subject: [ruby-core:55586] [ruby-trunk - Bug #8550] On Windows Process.spawn 'command', 'arg1', 'arg2', ... evals the arguments Issue #8550 has been updated by nobu (Nobuyoshi Nakada). Category set to doc This is a spec. Otherwise you have to write system(ENV["COMSPEC"], "/c", "echo foo"), and it seems too messy. Patches for the rdoc are welcome. ---------------------------------------- Bug #8550: On Windows Process.spawn 'command', 'arg1', 'arg2', ... evals the arguments https://bugs.ruby-lang.org/issues/8550#change-40077 Author: mdesantis (Maurizio De Santis) Status: Open Priority: Normal Assignee: Category: doc Target version: ruby -v: ruby 2.0.0p195 (2013-05-14) [x64-mingw32] Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN =begin Environment: ruby 2.0.0p195 (2013-05-14) [x64-mingw32] (RubyInstaller with DevKit) on Windows 7 64bit According to the Process.spawn documentation, the syntax 'cmdname, arg1, ...' doesn't involve the shell. Indeed, on Unix this is true: ((%Process.spawn 'echo', '$PATH'%)) prints '$PATH'. But on Windows the behaviour is different: executing ((%Process.spawn 'echo', '%Path%'%)) prints the contents of the Path environment variable. I think the behaviour should be the same on the different OSes; at least, if it is not possible, the documentation should point it out. =end -- http://bugs.ruby-lang.org/