Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
964 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Batch] Lire une variable d'environnement en batch

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Batch] Lire une variable d'environnement en batch

n°1497990
sephiburp
Posté le 02-01-2007 à 15:43:29  profilanswer
 

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" :

Code :
  1. SET MAVAR=AAA
  2.   C:\Perl\bin\perl.exe "C:\pgm.pl"
  3.   ECHO %MAVAR%


 
Dans "pgm.pl" :

Code :
  1. print $ENV{'MAVAR'};   # Affiche "AAA"
  2.   $ENV{'MAVAR'} = "BBB";
  3.   print $ENV{'MAVAR'};   # Affiche "BBB"


   
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
 
 
 

mood
Publicité
Posté le 02-01-2007 à 15:43:29  profilanswer
 

n°1498243
ZeBix
edit > preview
Posté le 03-01-2007 à 14:11:40  profilanswer
 

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 ?

n°1498372
sephiburp
Posté le 03-01-2007 à 17:36:54  profilanswer
 

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.

n°1498417
wackevat
Posté le 03-01-2007 à 19:24:04  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Batch] Lire une variable d'environnement en batch

 

Sujets relatifs
[Perl] Récupérer valeur d'un programme Perl dans un batchrm -rf en batch sur windows 2000?
variable dans du javascript, problème de " et de ' ...(VBA excel) lire les données d'une macro complementaire
[shell/batch] quelle commande utiliser ?[Resolu] Comment lire dans un fichier ligne par ligne
variable en caractereplus petite variable
variable dans system()[Batch] Créer une exception pour la commande DEL
Plus de sujets relatifs à : [Batch] Lire une variable d'environnement en batch


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR