How to invoke Windows program with a Ruby command

R

RichardOnRails

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
 
M

Mohit Sindhwani

RichardOnRails said:
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?
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.
 
D

Dejan Dimic

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

There are many ways to redirect output from your system call.
Take look at: http://www.robvanderwoude.com/redirection.html
 
R

Roger Pack

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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,756
Messages
2,569,535
Members
45,008
Latest member
obedient dusk

Latest Threads

Top