[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

How to invoke Windows program with a Ruby command

RichardOnRails

10/26/2008 4:24:00 AM

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
3 Answers

Mohit Sindhwani

10/26/2008 10:14:00 AM

0

RichardOnRails wrote:
> 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.



Dejan Dimic

10/27/2008 10:31:00 PM

0

On Oct 26, 5:23 am, RichardOnRails
<RichardDummyMailbox58...@uscomputergurus.com> wrote:
> 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/redire...

Roger Pack

10/28/2008 8:25:00 AM

0

> 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.
--
Posted via http://www.ruby-....