|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Hi, there
How can I capture a error massage from the STD IO? For instance, I have a program call foo.exe and i run the program /foo.exe Then the program prints out some error messages. How can I write a script that capture the errors and save then into a file? -- Posted via http://www.ruby-forum.com/. |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
-------- Original-Nachricht -------- > Datum: Tue, 27 May 2008 06:52:55 +0900 > Von: Cheyne Li <happy.go.lucky.clr@gmail.com> > An: ruby-talk@ruby-lang.org > Betreff: How to catch STDIO STREAM? > Hi, there > > How can I capture a error massage from the STD IO? > For instance, I have a program call foo.exe and i run the program > ./foo.exe > > Then the program prints out some error messages. > > How can I write a script that capture the errors and save then into a > file? > -- > Posted via http://www.ruby-forum.com/. Dear Cheyne, have a look at this: http://www.ruby-doc.org/stdlib/libdo...doc/index.html Best regards, Axel -- GMX startet ShortView.de. Hier findest Du Leute mit Deinen Interessen! Jetzt dabei sein: http://www.shortview.de/?mc=sv_ext_mf@gmx |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
Thank you for your information. I tried, but it only give me result like
#<IO:0xf60e8> So, is there a way to convert it into string? Axel Etzold wrote: > -------- Original-Nachricht -------- >> Datum: Tue, 27 May 2008 06:52:55 +0900 >> Von: Cheyne Li <happy.go.lucky.clr@gmail.com> >> An: ruby-talk@ruby-lang.org >> Betreff: How to catch STDIO STREAM? > >> -- >> Posted via http://www.ruby-forum.com/. > > Dear Cheyne, > > have a look at this: > > http://www.ruby-doc.org/stdlib/libdo...doc/index.html > > Best regards, > > Axel -- Posted via http://www.ruby-forum.com/. |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
-------- Original-Nachricht -------- > Datum: Tue, 27 May 2008 07:21:55 +0900 > Von: Cheyne Li <happy.go.lucky.clr@gmail.com> > An: ruby-talk@ruby-lang.org > Betreff: Re: How to catch STDIO STREAM? > Thank you for your information. I tried, but it only give me result like > #<IO:0xf60e8> > > So, is there a way to convert it into string? > Dear Cheyne, yes, there is. Use readlines, like this: ------------------------------- require "open3" filenames=%w[file1 file2 file3] inp,out,err=Open3.popen3("xargs","ls","-l") filenames.each{|f| inp.puts f} inp.close output=out.readlines errout=err.readlines puts "sent #{filenames.size} lines of input" puts "got back #{output.size} lines of output" puts "these were the errors, if any:" puts errout ----------------------------------- Best regards, Axel > > Axel Etzold wrote: > > -------- Original-Nachricht -------- > >> Datum: Tue, 27 May 2008 06:52:55 +0900 > >> Von: Cheyne Li <happy.go.lucky.clr@gmail.com> > >> An: ruby-talk@ruby-lang.org > >> Betreff: How to catch STDIO STREAM? > > > >> -- > >> Posted via http://www.ruby-forum.com/. > > > > Dear Cheyne, > > > > have a look at this: > > > > http://www.ruby-doc.org/stdlib/libdo...doc/index.html > > > > Best regards, > > > > Axel > > -- > Posted via http://www.ruby-forum.com/. -- Psssst! Schon vom neuen GMX MultiMessenger gehört? Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
On 26.05.2008 23:52, Cheyne Li wrote:
> How can I capture a error massage from the STD IO? > For instance, I have a program call foo.exe and i run the program > /foo.exe > > Then the program prints out some error messages. > > How can I write a script that capture the errors and save then into a > file? You do not need Ruby for that. At an arbitrary shell prompt: foo.exe > errors.txt Kind regards robert |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
Robert Klemme wrote:
> foo.exe > errors.txt I'm sorry, I don't know Windows that well, but wouldn't that redirect stdout and not stderr? Or maybe it would redirect both, but what I think the OP wants is to just redirect the errors while still printing the normal messages to the screen. -- NP: Depeche Mode - Useless Jabber: sepp2k@jabber.org ICQ: 205544826 |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
On 27.05.2008 16:23, Sebastian Hungerecker wrote:
> Robert Klemme wrote: >> foo.exe > errors.txt > > I'm sorry, I don't know Windows that well, but wouldn't that redirect stdout > and not stderr? Correct. > Or maybe it would redirect both, but what I think the OP > wants is to just redirect the errors while still printing the normal messages > to the screen. He did not mention explicitly which stream he wanted to redirect that's why I presented this solution. Of course, you can as well redirect stderr on Windows. Kind regards robert |
|
![]() |
| Outils de la discussion | |
|
|