How to invoke Windows program with a Ruby command


#1

Hi,

I’ve got a command that works in the Command Window of WinXP-Pro/SP3:

F:\Docume~1\AllUse~1\StartM~1\Programs_Microsoft
\Micros~3\Micros~2.lnk
K:_Projects\Ruby_Rails_Apps\PayrollLoader\TestSheet.xls

As I write this post, the command is written on two lines. But in
the Command Windows are submitted as a single line with a space
separating the program from the argument. The command brings up Excel
with the content from the file named in the program’s argument.

However, I have not been able to get this to work in Ruby with
system(pgm_name, file_name). The command does nothing. It doesn’t
crash, as evidenced by the fact that following commands are executed
correctly.

How can I achieve the Command Window result with Ruby 1.8.6?

Thanks in Advance,
Richard


#2

RichardOnRails wrote:

separating the program from the argument. The command brings up Excel
with the content from the file named in the program’s argument.

However, I have not been able to get this to work in Ruby with
system(pgm_name, file_name). The command does nothing. It doesn’t
crash, as evidenced by the fact that following commands are executed
correctly.

How can I achieve the Command Window result with Ruby 1.8.6?

Took me a while to get this working.

Here’s what works:
#make sure that the name of the executable is within quotes
exec_link = ““c:\Documents and Settings\Mohit\Start Menu\Quick
Start\TextPad.lnk””
#make sure that the document name is within quotes
doc_name = ““e:\projects\tedn01\extract\01.extract_styles.rb””

#launch the ‘link’ using cmd
my_exec = "cmd /C “#{exec_link} #{doc_name}” "

puts my_exec
ret = system(my_exec)
puts ret

Hope this helps.

Cheers,
Mohit.
10/26/2008 | 6:13 PM.


#3

On Oct 26, 5:23 am, RichardOnRails
removed_email_address@domain.invalid wrote:

separating the program from the argument. The command brings up Excel
Richard
There are many ways to redirect output from your system call.
Take look at: http://www.robvanderwoude.com/redirection.html


#4

As I write this post, the command is written on two lines. But in
the Command Windows are submitted as a single line with a space
separating the program from the argument. The command brings up Excel
with the content from the file named in the program’s argument.

Might be able to use system(“start filename_here”)
Good luck.