Rechercher : dans
Par :

Problème de variables d'environnement sous XP

Dernière réponse le 12 mar 2009 à 08:50:44 Aphex, le 8 mar 2009 à 20:25:12 
 Signaler ce message aux modérateurs

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 !
++

Configuration: Windows XP
Firefox 3.0.7

Meilleures réponses pour « Problème de variables d'environnement sous XP » dans :
[Bash] La variable d'environnement PATH VoirLa variable d'environnement PATH I. Préambule II. C'est quoi le shell ? III. Définition IV. Séance de dissection V. Ajouter un répertoire à la variable PATH VI. Et puis... I. Préambule Sous les systèmes GNU/Linux qu'on le veuille ou...
Windows 7 installe une partition cachée : A quoi sert-elle ? VoirLors de son installation, Windows 7 crée automatiquement une partition cachée primaire active de 100 ou 200 Mo selon la capacité totale allouée à 7. Cette partition, qui n’apparaît pas dans "Ordinateur" ou "l'explorateur", n’est visible que dans la...
Editer le menu contextuel de Nautilus (navigateur de fichiers) VoirIl est facile d'ajouter des éléments dans le menu clic-droit de Nautilus (l'explorateur de fichiers d'Ubuntu). Il existe deux méthodes: avec nautilus-action avec nautilus-scripts Chacun a ses avantages: Les plus de nautilus...
Variables d'environnement VoirVariables d'environnement Une variable d'environnement est une valeur dynamique, chargée en mémoire, pouvant être utilisée par plusieurs processus fonctionnant simultanément. Sur la plupart des systèmes d'exploitation, les emplacement de...
PHP - Les variables d'environnement VoirNotion de variable d'environnement Les variables d'environnement sont, comme leur nom l'indique, des données stockées dans des variables permettant au programme d'avoir des informations sur son environnement. L'environnement, dans le cas du script...
Java: les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage Java sont typées, c'est-à-dire que les données contenues dans...

1

dubcek, le 9 mar 2009 à 09:27:16

Hello
si la fenêtre est fermée, les variables sont perdues, sinon
set doc=\doc
echo %doc%
doit fonctionner

Répondre à dubcek

2

Aphex, le 11 mar 2009 à 23:40:00

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 !
++

Répondre à Aphex

3

 dubcek, le 12 mar 2009 à 08:50:44

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 ?

Répondre à dubcek
Collection CommentÇaMarche.net