Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

Capture external command output line by line on Windows 98

Posted on 2003-11-20
8
331 Views
Last Modified: 2010-03-04
Hello,

I'm trying to Capture external command output and error line by line.
I wrote this example witch work excellent on Windows 2000:

open(PROC,"DIR 2>&1 |");
while(<PROC>) {
      print ("LINE:$_");
}
close(PROC);

But on Windows 98 it don't do nothing!
I'm user perl 5.6.1 activestate 625.

I need to display the output line by line and not all at once
so I can't use system command.

How can I implement it on windows 98 ?
0
Comment
Question by:addady
8 Comments
 
LVL 48

Expert Comment

by:Tintin
ID: 9791749

foreach (<*>) {
  print "LINE: $_";
}
0
 

Author Comment

by:addady
ID: 9796145
Tintin, I don't your answer ?
0
 
LVL 48

Expert Comment

by:Tintin
ID: 9802309
addady.

Did you leave the word "understand" out of your answer?

What I'm suggesting is that instead of relying on an external command to get a directory listing, use the Perl method of doing it for you.  That way your code is a lot more portable.

To invoke the dir command under Win98, I think you'd have to do something like "command.com dir", but that's not very portable, hence the solution I gave you.
0
Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 

Author Comment

by:addady
ID: 9845092
Please let me rewrite and update my question:

I'm trying to Capture external command output and error line by line.
There is no problem to implement it on windows 2000, but in Windows 98
you need a special shell.
The only shell that I found and it really work with is: stderr.exe*

This code is work fine on w98:

open(PROC,"stderr.exe $some_command |");
while(<PROC>) {
    print ("$_");
}
close(PROC);

But the point is that it fail when I'm specify full path for "stderr.exe"
(becuase I'm exe file using perlapp and --bind don't help)

For example:
open(PROC,"C:/dir_name/stderr.exe $some_command |");
while(<PROC>) {
    print ("$_");
}
close(PROC);

My questions are:
1) why can't I specify full path ?
2) do you know any alternative shell that work on Windows 98 using pipe.



* can be forun in: http://www.teaser.fr/~amajorel/stderr/stderr.txt

0
 
LVL 48

Expert Comment

by:Tintin
ID: 9889455
How about you include the error message to see why it is failing, ie:

open PROC,"C:/dir_name/stderr.exe $some_command |" or die :Can not run stderr.exe because $!\n";
0
 

Author Comment

by:addady
ID: 9892185
Hi Tintin,

It seens the it not "die" .  
There is no error and still the command is not exacuted.
0
 
LVL 20

Expert Comment

by:jmcg
ID: 10093707
Nothing has happened on this question in more than 5 weeks. It's time for cleanup!

My recommendation, which I will post in the Cleanup topic area, is to
PAQ, refund points (good progress, but ultimately unresolved).

PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER!

jmcg
EE Cleanup Volunteer
0
 
LVL 1

Accepted Solution

by:
Computer101 earned 0 total points
ID: 10148148
PAQed, with points refunded (200)

Computer101
E-E Admin
0

Featured Post

Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

I've just discovered very important differences between Windows an Unix formats in Perl,at least 5.xx.. MOST IMPORTANT: Use Unix file format while saving Your script. otherwise it will have ^M s or smth likely weird in the EOL, Then DO NOT use m…
On Microsoft Windows, if  when you click or type the name of a .pl file, you get an error "is not recognized as an internal or external command, operable program or batch file", then this means you do not have the .pl file extension associated with …
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…

809 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question