----- Original Message ----- From: "Brian Warn" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Friday, March 29, 2002 14:55 Subject: RE: ps within DOS
> I suppose that I could run this under cygwin's perl ... It would certainly be easier if you aren't mixing environment when you don't have to. More below. > From: Brian Warn [mailto:[EMAIL PROTECTED]] > Sent: Friday, March 29, 2002 2:54 PM > To: '[EMAIL PROTECTED]' > Subject: ps within DOS > > > As part of a (win32) perl program I'm running, I'm trying to run a > system ps command and return to the DOS shell (or whatever the shell is > known as in Win2K). From the command line, I can do the following, but > I stay in the bash shell: > > C:> c:\cygwin\cygwin.bat | ps | exit You are starting an interactive shell, starting ps.exe, starting 'exit', all under MSDOS and having MSDOS tie each STDIN to the predecessor's STDOUT. > [ ps info here ] > > my_machine $ > > The bottom line is that I want to read process info into an array as > follows: > > @my_array=`cygwin.bat | ps | grep "desired string"`; You should use Perl's grep. If you are using Cygwin ps, you also need '-W' to see Windows processes (run 'ps -h' for a list of options). I'd do something this (TMTOWTDI): # /usr/bin/perl -w # This works regardless for both Cygwin Perl and Native Perl use strict; open( PS, "ps -W |" ) or die "Pipe from ps failed, $!\n"; my @my_array = grep { /desired string/ } <PS>; close PS or die "Error from ps, $!\n"; -- Mac :}) ** I normally forward private questions to the appropriate mail list. ** Ask Smarter: http://www.tuxedo.org/~esr/faqs/smart-questions.html Give a hobbit a fish and he eats fish for a day. Give a hobbit a ring and he eats fish for an age. -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/