[Perl] Récupérer valeur d'un programme Perl dans un batch

Récupérer valeur d'un programme Perl dans un batch [Perl] - Perl - Programmation

Marsh Posté le 29-12-2006 à 19:04:00    

Bonjour,
 
J'ai un script "appel.bat" qui appelle un programme Perl "pgm.pl".
 
J'aimerais pouvoir récupérer, dans "appel.bat", des valeurs générées par "pgm.pl".
 
Dans l'autre sens, çà ne pose pas de problème. C'est-à-dire :
Dans "appel.bat" j'appelle le programme Perl en passant une variable VAR1 :
C:\Perl\bin\perl.exe "C:\pgm.pl" %VAR1%
et dans le "pgm.pl", on peut récupérer la valeur de VAR1 en utilisant la variable $ARGV[0]
 
Mais ceci ne marche pas pour passer une valeur de "pgm.pl" au batch "appel.bat". Voici ce que j'ai essayé :
 
Dans "appel.bat" :

Code :
  1. C:\Perl\bin\perl.exe "C:\pgm.pl" %VAR1%
  2.      echo %VAR1%


 
Dans "pgm.pl" :

Code :
  1. $ARGV[0]="coucou";


 
 
Mais dans "appel.bat", la variable %VAR1% reste vide.
 
 
Une solution serait de passer par un fichier mais çà me convient pas car je fais des print dans le "pgm.pl" arf.gif
 
 
Quelqu'un a une idée svp ??

Reply

Marsh Posté le 29-12-2006 à 19:04:00   

Reply

Marsh Posté le 23-02-2007 à 23:21:43    

$ARG[0] ne permet pas de modifier le parametère de la ligne de commande qui a appelé la commande perl.
 
En effet, au moment d'entrer dans le script perl, le shell windows a déjà remplacé %VAR1% par sa valeur. Donc si celle ci vaut "TOTO", alors ça revient strictement à appeler  
 

Code :
  1. C:\Perl\bin\perl.exe "C:\pgm.pl" TOTO


 
et donc là, il devient évident que $ARGV[0] ne fait pas ce qui est excompté.
 
Sinon, un moyen simple de mettre quelque chose dans VAR1 c'est de mettre dans le perl
 

Code :
  1. $ENV{"VAR1"}="coucou";


 
A essayer...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed