Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
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 romping around the Monastery: (8)
As of 2014-12-25 23:01 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (163 votes), past polls