OVH Cloud OVH Cloud

Variables d'environnment

4 réponses
Avatar
Heffgé
Bonjour,

Après avoir retourné le problème dans tous les sens, je n'ai pas réussi à
touver le moyen de créer, avec WSH et sous Win 98, une variable
d'environnement qui perdure au delà de l'exécution du script.

La seule solution que j'ai trouvé consiste à créer en VBS un fichier batch
contenant la commande set. Bien sûr la portée ne dépasse pas la durée de la
session DOS où il est utilisé mais c'est suffisant pour l'utilisation
recherchée.

Si quelqu'un a une solution plus élégante, merci d'avance.

Heffgé

4 réponses

Avatar
Jean-Claude BELLAMY
Dans le message :%,
Heffgé a pris la peine d'écrire ce qui suit :
Bonjour,

Après avoir retourné le problème dans tous les sens, je n'ai pas
réussi à touver le moyen de créer, avec WSH et sous Win 98, une
variable d'environnement qui perdure au delà de l'exécution du script.

La seule solution que j'ai trouvé consiste à créer en VBS un fichier
batch contenant la commande set. Bien sûr la portée ne dépasse pas la
durée de la session DOS où il est utilisé mais c'est suffisant pour
l'utilisation recherchée.

Si quelqu'un a une solution plus élégante, merci d'avance.



Laisse tomber le VBS dans ce cas précis (Win98) et contente toi d'un bon
vieux batch faisant appel à la commande "WINSET", qui rend les définitions
de variables d'environnement permanentes.
Cet outil est - parfois- fourni avec le CD de Windows 9x (cela dépend des
versions. P.ex. dans le répertoire TOOLSRESKITSCRPTING du CD de Windows
98).

Comme on ne le trouve pas partout, je l'ai mis sur mon site :
http://www.bellamyjc.org/download/winset.exe (22 ko)


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] -
http://www.bellamyjc.org ou http://jc.bellamy.free.fr

Avatar
Heffgé
Bonjour Jean-Claude BELLAMY,

Laisse tomber le VBS dans ce cas précis (Win98) et contente toi d'un bon
vieux batch faisant appel à la commande "WINSET", qui rend les définitions
de variables d'environnement permanentes.
Cet outil est - parfois- fourni avec le CD de Windows 9x (cela dépend des
versions. P.ex. dans le répertoire TOOLSRESKITSCRPTING du CD de Windows
98).



OK pour winset et merci mais dans le cas présent il ne s'agit pas réellement
de rendre une variable permanente. Je n'ai soumis qu'un petit bout du
problème. Tout part d'une question qui a été posée par une autre personne.
Comment, à l'aide de commandes batch, mettre le contenu d'un fichier dans
une variable d'environnement, sachant que ce fichier a été crée par
redirection de la sortie d'une commande précédente ?

La concaténation avec un autre fichier contenant "set=" ne marche pas car il
y a un CRLF parasite. La redirection d'entrée vers la commande set ne marche
pas non plus. J'ai donc trouvé la solution VBS pour contourner le problème
mais en passant par un fichier bat intermédiaire. Car si je crée la variable
dans le script ce n'est pas le même shell et elle ne survit pas au script.

D'où ma question.

Si tu as une autre suggestion, merci d'avance.

FG

Avatar
Méta-MCI
Bonsoir !

Pour la concaténation d'un fichier, à un autre, contenant "set =", il faut
utiliser l'utilitaire delcrlfd.exe

Cet utilitaire est disponible là : http://ponx.org/batutils

Je l'ai réalisé ESSENTIELLEMENT pour cet usage. Et, c'est bien pratique.


@-salutations

Michel Claveau
Avatar
Heffgé
Bonjour Michel Claveau,

Merci pour ce lien et les utilitaires qui y sont proposés.

En fait j'ai fini par trouver la solution au problème posé : la commande
copy !

Si toto.txt contient "set nom_var=" et titi.txt "valeur_var" on obtient le
résultat recherché avec :

copy /y toto.txt + titi.txt tata.bat > nul

À une condition toutefois, créer toto.txt avec une appli Windows, le
bloc-notes par exemple. Si on le crée avec edit le CRLF maudit apparaît.

FG


"Méta-MCI" a écrit dans le message de
news:
Bonsoir !

Pour la concaténation d'un fichier, à un autre, contenant "set =", il faut
utiliser l'utilitaire delcrlfd.exe

Cet utilitaire est disponible là : http://ponx.org/batutils

Je l'ai réalisé ESSENTIELLEMENT pour cet usage. Et, c'est bien pratique.


@-salutations

Michel Claveau