Je sais comment définir des variables d'environnement spécifiques au système ou à l'utilisateur:
Maintenant, le problème est que la PATH
variable est traitée de telle sorte que la valeur que vous entrez pour l'utilisateur PATH sera automatiquement ajoutée au système PATH et qui sera la variable PATH effective.
Autrement dit, dis que j'ai
(SYSTÈME) PATH=C:\Windows\System32;C:\Program Files\Foo\bin;...
et (UTILISATEUR) PATH=C:\Program Files\Bar\bin
(notez qu'il n'y a pas %PATH%
dans cette valeur)
alors la variable d'environnement résultante pour cet utilisateur sera:
(efficace) PATH=C:\Windows\System32;C:\Program Files\Foo\bin;...;C:\Program Files\Bar\bin
Cependant, je préférerais que pour un compte utilisateur de système d'exploitation très spécifique, la variable d'environnement PATH devrait avoir le bar\bin
répertoire au début du PATH plutôt qu'à la fin.
Existe-t-il un moyen approprié de dire à Windows de remplacer complètement la PATH
variable d'un utilisateur par la valeur de cet utilisateur au lieu de l'ajouter à la PATH
variable système ?
Remarque: Évidemment, à partir d'un fichier de commandes, tout cela n'a pas d'importance car vous pouvez définir et modifier les env.vars comme vous le souhaitez.
PATH
et que ce compte d'utilisateur spécifique serait mieux servi en ayant un autrePATH
. Je sais qu'il existe de nombreuses solutions de contournement, mais je voulais savoir s'il y avait quelque chose hors de la boîte / au niveau du système d'exploitation / du registre pour y parvenir.Réponses:
Si vous n'en avez besoin que pour les sessions d'invite de commandes, créez un fichier batch profil / init et configurez-le dans le registre, par /programming/17404165/how-to-run-a-command-on -command-prompt-startup-in-windows . Par exemple,
Ensuite, apportez simplement des modifications au CHEMIN dans ce fichier de commandes. Par exemple,
la source
J'ai eu le même problème et cela a fonctionné pour moi:
Vous pouvez obtenir une "variable de chemin utilisateur" via:
La sortie (sur ma machine) est:
Mais ensuite, vous devez analyser cela et utiliser la partie appropriée.
J'ai lu la solution ici ici et testé sur ma machine.
la source
Je ne sais pas comment ignorer la variable système, mais je sais que si vous utilisez des variables de session (via une
SET
commande), elles ont priorité sur les autres variables. Vous pouvez donc utiliser l'SET PATH=C:\Program Files\Bar\bin
instruction et le chemin souhaité sera la première partie de la variable.Voici une référence valide, et je rapporte ici une période simple à partir de cette page:
la source
PATH
variable est une exception (cas particulier) - la variable utilisateur n'a pas la priorité sur la variable système. Le fait qu'une "variable de session" prévaudra sur les variables prédéfinies utilisateur et système est vrai, mais comment définir automatiquement une variable de session pour un utilisateur? G-Wiz a répondu à cette question et, AFAICS, vous n'avez rien ajouté à cette réponse.