Lire une variable d'environnement en batch [Batch] - Shell/Batch - Programmation
Marsh Posté le 03-01-2007 à 14:11:40
Est ce que tu es sûr que l'environnement de Perl (le $ENV) c'est le même que l'environnement du command prompt ?
Marsh Posté le 03-01-2007 à 17:36:54
J'avais compris que les variables d'environnement sont communes à toute la machine, quelquesoit le langage. 
C'est comme çà qu'on peut, par exemple, savoir où se trouvent les fichiers systèmes Windows : %SystemRoot% 
 
En tout cas, j'arrive à récupérer n'importe quelle variable d'env. dans le programme Perl.
Marsh Posté le 03-01-2007 à 19:24:04
Ta variable n'est modifiée que localement, i.e. dans l'environement de l'interpréteur Perl. 
 
Elle n'est pas modifiée dans celui du shell Windows. 
 
C'est la même chose que si on remplaçait : 
C:\Perl\bin\perl.exe "C:\pgm.pl" 
par 
call pgm.bat 
 
dont le contenu de pgm.bat est : 
setlocal 
echo %VAR% 
set VAR=NOUVELLE_VALEUR 
echo %VAR% 
endlocal
Marsh Posté le 02-01-2007 à 15:43:29
Bonne année !!
Mon problème :
En Perl, j'écris dans des variables d'environnement avec $ENV{''} mais je n'arrive pas à lire les valeurs en batch.
Un exemple avec un batch "appel.bat" et un programme Perl "pgm.pl" :
Dans "appel.bat" :
Dans "pgm.pl" :
La variable MAVAR est bien lue et bien modifiée dans "pgm.pl"
Mais dans le batch "appel.bat", le ECHO en ligne 3 affiche toujours "AAA" pourtant la valeur a bien été modifiée dans le pgm.pl