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