Comment les variables d'environnement Windows sont-elles évaluées?
Si j'ai un système et de la variable d'environnement utilisateur avec le même nom, comment sont-elles traitées? Ils sont concaténés? L'utilisateur remplacement de variable la variable système? Et en tenant compte, si je dois ajouter quelque chose à la Path
variable, où est-il plus avantageux pour l'ajouter?
source d'informationauteur mjsr
Vous devez vous connecter pour publier un commentaire.
Je pense que cet article devrait répondre à votre question: Les variables d'environnement sous Windows NT
Tout splash dit dans leur réponse est correct. Pour être tout à fait clair, il y a une différence entre la façon dont l'utilisateur variable d'environnement path est évalué, et les autres variables d'environnement utilisateur sont évalués. Un utilisateur régulier de la variable d'environnement remplace complètement un système un avec le même nom si les deux existent, mais seulement pour les utilisateurs, il est spécifié. Cependant, les variables de chemin d'accès de l'utilisateur est traitée différemment. Il est ajouté à la variable système path lors de l'évaluation, plutôt que de les remplacer complètement. Je crois splash états, mais ils le font de manière concise, je pense qu'il faut d'orthographe.
Tout ce qui splash et Simon dire dans leurs réponses sont correctes. L'idée que la variable de chemin d'accès de l'utilisateur est ajouté a été mis en évidence, et je crois que les conséquences de cette différence supplémentaire de traitement.
Lorsque vous exécutez un programme exécutable (ou aucun script exécutable, comme
.bat
.vbs
etc.) vous n'avez pas besoin de fournir le chemin d'accès complet.Par exemple, pour exécuter
java
vous pouvez taper n'importe quel de ces:Le premier exemple utilise un chemin d'accès complet. Cela permettra de toujours utiliser la version de Java à ce chemin exact.
Le deuxième exemple passer par chacun des répertoires dans le
%Path%
variable d'environnement, recherche pour un fichier exécutable nomméjava.exe
. Il sera exécuté le premier, et arrêtez de chercher. Si il y a deux fichiers nommésjava.exe
quelque part sur le%Path%
seul le premier trouvé est utilisé.Le troisième exemple, comme le second, va parcourir les répertoires listés dans la
%Path%
. En outre, parce que l'extension du fichier n'a pas été fourni, une liste d'extensions de fichiers exécutables sont ajoutés au nom de fichier, dans l'ordre spécifié dans la%PATHEXT%
variable d'environnement. Si il y a plusieurs fichiers nommésjava.com
java.exe
java.bat
etc. quelque part sur la%Path%
seul le premier trouvé est utilisé.Vous pouvez voir la liste des chemin de l'exécutable extensions sur votre système en créant le fichier de commandes suivant:
Sur ma machine, ce sont:
Que signifie tout cela?
Dans contraste à d'autres variable d'environnement, le chemin d'accès utilisateur ne vous permet pas de remplacer le chemin d'accès système. L'exact contraire est le cas. Dans les exemples ci-dessus, il existe de nombreux cas où vous pouvez vous avec modifier la valeur par défaut de la version de Java. Cependant, s'il existe déjà une version de Java répertoriés dans le chemin d'accès du système, qui est la version qui se trouve TOUJOURS la première, parce que le chemin est recherché dans l'ordre, de gauche à droite, et le chemin d'accès utilisateur est ajouté sur le côté droit, avec le système de chemin sur la gauche.
Ce que je peux faire à ce sujet?
Si vous n'avez pas accès aux variables d'environnement du système, vous ne pouvez pas remplacer les programmes par défaut, le chemin d'accès au système en utilisant le chemin d'accès de l'utilisateur. (En fait, il doit être de cette façon, ou de certains programmes cessent de fonctionner correctement, et il allait ouvrir votre système à la falsification par des logiciels malveillants. Personne n'en veut.)
Au lieu de cela, vous devez utiliser un chemin d'accès complet si vous devez utiliser une version spécifique.