Problème de variables d'environnement sous XP

Résolu
Aphex Messages postés 10 Statut Membre -  
dubcek Messages postés 19031 Date d'inscription   Statut Contributeur Dernière intervention   -
Salut à toute la communauté !

Je viens solliciter votre aide car je rencontre un problème avec la mise en place de variables d'environnement personnelles sous XP. J'ai créé quelques variables dont la valeur de certaines dépend de la valeur d'une autre...

Par exemple:
Doc = %UserProfile%\Mes documents
Images = %Doc%\Mes Images
...

Pour tester ces variables, j'ai par exemple fait "Echo %Images% dans mon invite de commandes. Quelque fois, cela marche, mais pour d'autres, cela ne marche pas et la commande Echo me renvoie %Doc%\Mes Images
Je dois dire que je ne comprends pas ce qui différencie celles qui marchent de celles qui ne marchent pas...?

Voilà, le problème... Je fais donc appel à vos lumières car cela me serait d'une grande aide !
++
A voir également:

2 réponses

dubcek Messages postés 19031 Date d'inscription   Statut Contributeur Dernière intervention   5 641
 
hello
si la fenêtre est fermée, les variables sont perdues, sinon
set doc=\doc
echo %doc%
doit fonctionner
0
Aphex Messages postés 10 Statut Membre 3
 
Salut Dubcek !

Je te remercie de t'être penché sur mon problème...

Non, en fait le point que tu soulèves est à écarter. Mes variables ne sont ni locales, ni temporaires ('si la fenêtre est fermée, les variables sont perdues'). Elles sont persistantes (restent quand je ferme mon invite de commande, car font parties de mon profile...).

J'ai en réalité trouvé l'origine du problème depuis... Certaines de mes variables n'étaient pas complètement étendues lors de leur utilisation car l'expansion des 'sous variables' (celles qui composent la variable terminale) n'est possible que si leurs noms précèdent celui de la variable appelée (terminale) d'un point de vue alphabétique.

* Pour donner un exemple... Imaginons la création des variables suivantes à partir du chemin original
'C:\Documents and Settings\Moi\Mes Documents\Mes Images\Photos numériques' :

Doc=%Userprofile%\Mes Documents
Pict=%Doc%\Mes Images
Photos=%Pict%\Photos numériques

Avec cette configuration, la commande 'Echo %Photos%' va revoyer '%Pict%\Photos numériques' et non pas 'C:\Documents and Settings\Moi\Mes Documents\Mes Images\Photos numériques'. Car dans l'ordre alphabétique, la variable 'Photos' précède la variable 'Pict'.

* Imaginons maintenant la situation suivante à partir du même chemin.

Doc=%Userprofile%\Mes Documents
Img=%Doc%\Mes Images
Photos=%Img%\Photos numériques

Cette fois, la commande 'Echo %Photos%' va revoyer 'C:\Documents and Settings\Moi\Mes Documents\Mes Images\Photos numériques', soit la bonne valeur (entièrement étendue). Car dans l'ordre alphabétique, la variable 'Pict' précède la variable 'Photos'...

Finalement, lors de l'appel d'une variable utilisateur dans la console windows, toutes les variables définies pour cet utilisateur dont le nom précède alphabétiquement celui de la variable appelée sont analysées, l'analyse s'arrêtant au nom de la variable terminale... Ainsi, si la variable terminale intègre une sous variable dont le nom succède alphabétiquement celui de la première, la seconde sera interprétée comme une chaine et ressortira sous la forme %nomDeLaVariable%... CQFD

Voilà, si d'autres se sont déjà retrouvés confrontés à ce problème, pensez à cette particularité...
Merci encore de ta suggestion Dubcek et bonne continuation !
++
0
dubcek Messages postés 19031 Date d'inscription   Statut Contributeur Dernière intervention   5 641
 
je n'ai pas compris dans quel cas se pose le problème de l'ordre des variables, parce que si je fais

set Doc=%Userprofile%\Mes Documents
set Pict=%Doc%\Mes Images
set Photos=%Pict%\Photos numériques
Echo %Photos%

Echo %Photos% affiche bien C:\Documents and Settings\Moi\Mes Documents\Mes Images\Photos numériques

c'est parce qu'elles sont dans ton profile ? autoexec.bat ?
0