Batch - Variable d'environnement

Batch - Variable d'environnement - Shell/Batch - Programmation

Marsh Posté le 16-02-2010 à 08:28:18    

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,

Reply

Marsh Posté le 16-02-2010 à 08:28:18   

Reply

Marsh Posté le 16-02-2010 à 10:03:42    

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 ?

Reply

Marsh Posté le 16-02-2010 à 10:07:14    

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.

Reply

Marsh Posté le 16-02-2010 à 10:07:15    

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.
 

Reply

Marsh Posté le 16-02-2010 à 10:12:31    

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

Reply

Marsh Posté le 16-02-2010 à 10:13:08    

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....

Reply

Marsh Posté le 16-02-2010 à 10:18:28    

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.
 

Reply

Marsh Posté le 16-02-2010 à 10:27:29    

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
Reply

Marsh Posté le 16-02-2010 à 10:31:39    

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

Reply

Marsh Posté le 16-02-2010 à 10:40:22    

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

Reply

Marsh Posté le 16-02-2010 à 10:40:22   

Reply

Marsh Posté le 16-02-2010 à 10:44:50    

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!

Reply

Marsh Posté le 16-02-2010 à 10:57:31    

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é!  --
Reply

Marsh Posté le 16-02-2010 à 11:08:23    

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
Reply

Sujets relatifs:

Leave a Replay

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