Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re: Tough automation question on windows

by tokpela (Chaplain)
on Apr 17, 2010 at 04:16 UTC ( #835225=note: print w/ replies, xml ) Need Help??


in reply to Tough automation question on windows

I think you are looking for something like IPC::Run3 which would allow you to run a program, capture the output to a variable, parse the variable and then run another command with parameters derived from the output of the preceding command.

Below is a contrived example that you can change to meet your own requirements.

use strict; use warnings; use IPC::Run3; my @command1 = ('batch1.bat', 'BF1_PARAM1', 'BF1_PARAM2'); my ($in1, $out1, $err1); run3 \@command1, \$in1, \$out1, \$err1; chomp($out1); print "BATCH FILE 1: [$out1]\n"; my @command2 = ('batch2.bat'); my ($in2, $out2, $err2); if ($out1 =~ /batch\s+file\s+output/i) { push(@command2, 'BF2-PARAM1'); push(@command2, 'BF2-PARAM2'); } run3 \@command2, \$in2, \$out2, \$err2; chomp($out2); print "BATCH FILE 2: [$out2]\n"; my @command3 = ('batch3.bat'); my ($in3, $out3, $err3); if ($out2 =~ /batch\s+file\s+output/i) { push(@command3, 'BF3-PARAM1'); push(@command3, 'BF3-PARAM2'); } run3 \@command3, \$in3, \$out3, \$err3; chomp($out3); print "BATCH FILE 3: [$out3]\n"; print "Done\n";

And the batch files I used (make 3 files using the below code and name batch1.bat, batch2.bat, and batch3.bat:

@ECHO OFF SET PARAM1=%~1 SET PARAM2=%~2 ECHO BATCH FILE OUTPUT: %PARAM1% %PARAM2% EXIT 0

This results in the following:

F:\ipctest>perl ipc_run3_test.pl BATCH FILE 1: [BATCH FILE OUTPUT: BF1_PARAM1 BF1_PARAM2 ] BATCH FILE 2: [BATCH FILE OUTPUT: BF2-PARAM1 BF2-PARAM2 ] BATCH FILE 3: [BATCH FILE OUTPUT: BF3-PARAM1 BF3-PARAM2 ] Done


Comment on Re: Tough automation question on windows
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://835225]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (16)
As of 2015-07-06 17:07 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (77 votes), past polls