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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Batch - Variable d'environnement

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Batch - Variable d'environnement

n°1966383
brandtance
Posté le 16-02-2010 à 08:28:18  profilanswer
 

Bonjour,
 
Je vous expose ma problématique :
Nous utilisons plusieurs batchs. Pour chaque batch nous avons une certaine quantité de variable que l'on aimerait passer en variable d'environnement. Actuellement, chaque script contient les mêmes paramètres...et le but serait de stocker cela dans un seul fichier...
 
D'ou ma question comment créer, via un batch, des variables d'envrionnement du type : ConnexionOracle, MdpDsi,...
 
D'avance merci,

mood
Publicité
Posté le 16-02-2010 à 08:28:18  profilanswer
 

n°1966396
MonGhost
Ite missa est
Posté le 16-02-2010 à 10:03:42  profilanswer
 

bonjour,
 
et si vous définissiez vos variables persistantes dans l'autoexec.bat ?
mais peut-etre cela pose-t il des pb de sécurité, notamment si vous stockez des mots de passe ?

n°1966397
olivthill
Posté le 16-02-2010 à 10:07:14  profilanswer
 

Citation :

comment créer, via un batch, des variables d'envrionnement


En utilisant la commande SET, par exemple

SET ConnexionOracle=toto

N.B. Sans guillemet.

n°1966398
brandtance
Posté le 16-02-2010 à 10:07:15  profilanswer
 

Oui voià c'est ça...
En fait, pour être plus précis ce sont des chaines de connexions Oracle, des chemins de fichiers, des mots de passe, etc....
Et donc je suis à la recherche de solutions car actuellement chaque fichier contient les chemins et les chaines de connexions...quand tu sois en changer un, il faut tous les changer....
Donc une solution consisterait à stocker ça dans un fichier pour lire ce fichier...mais en batch c'est pas top, l'autre en utilisant des variables! Mais j'ai des soucis car quand je fais un SET c'est une variable locale que je ne peux utiliser dans d'autres batch.
 

n°1966399
brandtance
Posté le 16-02-2010 à 10:12:31  profilanswer
 

olivthill a écrit :

Citation :

comment créer, via un batch, des variables d'envrionnement


En utilisant la commande SET, par exemple

SET ConnexionOracle=toto

N.B. Sans guillemet.


 
Cela ne marche pas...C'est Ok si tu utilises un batch, mais si tu fais un set dans un batch et que tu aimerais réutiliser cette variable dans un autre batch...ce n'es tpas possible

n°1966400
MonGhost
Ite missa est
Posté le 16-02-2010 à 10:13:08  profilanswer
 

après faut voir le code, car ça m'étonne qu'on ne puisse appeler un fichier pour chacune des variables dont vous avez besoin avec un for /f....

n°1966401
brandtance
Posté le 16-02-2010 à 10:18:28  profilanswer
 

Je t'explique :
 
Actuellement on va dire j'ai 3 batchs (j'en ai bien plus, mais pour l'exemple ça suffit).
Dans ces trois fichiers j'ai :  
sqlplus user/mdp@bdd @test.sql
 
Moi j'aimerais que ça "user/mdp@bdd" se trouve dans une variable d'environnement comme ça si la connexion change, je n'ai à le faire qu'une seule fois.
 

n°1966410
MonGhost
Ite missa est
Posté le 16-02-2010 à 10:27:29  profilanswer
 

brandtance a écrit :

Je t'explique :
 
Actuellement on va dire j'ai 3 batchs (j'en ai bien plus, mais pour l'exemple ça suffit).
Dans ces trois fichiers j'ai :  
sqlplus user/mdp@bdd @test.sql
 
Moi j'aimerais que ça "user/mdp@bdd" se trouve dans une variable d'environnement comme ça si la connexion change, je n'ai à le faire qu'une seule fois.
 


en gros ça donnerait :
créer un fichier d:\oracle.txt
user;mdp@bdd
 
for /f "eol= token=1,2* delims=;" %%i in (d:\oracle.txt) do (sqlplus %%i/%%j @test.sql)
 
à tester j'ai fait ça rapide


Message édité par MonGhost le 16-02-2010 à 10:29:38
n°1966412
brandtance
Posté le 16-02-2010 à 10:31:39  profilanswer
 

Ok, c'est une solution.
Et en utilisant des variables au lieu d'un fichier tierce ?

n°1966415
MonGhost
Ite missa est
Posté le 16-02-2010 à 10:40:22  profilanswer
 

je crois que les variables d'environnement sont persistantes uniquement si on les définit dans l'autoexec.bat  

mood
Publicité
Posté le 16-02-2010 à 10:40:22  profilanswer
 

n°1966416
brandtance
Posté le 16-02-2010 à 10:44:50  profilanswer
 

Ok, c'est ce que je craignais aussi...
Donc soit on passe par l'interface de Windows (Clic droit sur poste de travail puis propriétés - avancée et on crée nos variables) soit...c'est mort...
 
Arf, c'est bien dommage ce fonctionnement....
 
En tout cas, merci!

n°1966419
gilou
Modérateur
Modzilla
Posté le 16-02-2010 à 10:57:31  profilanswer
 

MonGhost a écrit :

je crois que les variables d'environnement sont persistantes uniquement si on les définit dans l'autoexec.bat  

Non, tu peux changer ça sous windows avec setx.exe  
C'est en standard a partir de Vista, et il faut installer un pack particulier pour Win 2K et XP. Voir la doc ici: http://ss64.com/nt/setx.html
 
Ou alors, tu peux utiliser setenv.exe, que tu trouveras ici: http://barnyard.syr.edu/~vefatica/#SETENV (c'est peut être un utilitaire un poil ancien, je ne sais pas ce qu'il donne sur des versions récentes de Windows)
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°1966425
MonGhost
Ite missa est
Posté le 16-02-2010 à 11:08:23  profilanswer
 

interessant gilou
 
par contre Brandtance, par rapport à ta problèmatique de sécurité, je ne suis pas sur que de mettre des mots de passe en variable d'environnement soit top...
déjà que les batch sur ce point c'est pas idéal....
 
tant mieux si j'ai pu t'aider  
 
bonne journée


Message édité par MonGhost le 16-02-2010 à 11:10:59

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

  Batch - Variable d'environnement

 

Sujets relatifs
[Batch] Extraire dans un nom complet de fichier UNC le nom du fichier[BATCH]Ping avec variable
Variable "chaine"Attribuer une valeur à une variable en cliquant sur un lien
Access ouverture d'un état paramétré avec variable VBA[Batch] Transformation des fichiers
Batch : chercher un fichier puis lui ajouter des lignesVariable d'environnement [batch] Copier et dater du clic droit
[Batch] Lire une variable d'environnement en batch[Batch] Modifier 1 variable d'environnement en cours d'éxécution
Plus de sujets relatifs à : Batch - Variable d'environnement


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