web-dev-qa-db-fra.com

Variable d'environnement système versus utilisateur PATH ... winmerge ne fonctionne que si j'ajoute le chemin vers l'utilisateur PATH

Si j'ajoute C:\Program Files (x86)\WinMerge à la variable User PATH (par un clic droit sur l'ordinateur -> paramètres système avancés -> variables d'environnement), une fois que j'ouvre un nouveau cmd Shell WinmergeU.exe n'est pas reconnu . Si j'ajoute ce chemin à la variable System PATH, WinmergeU.exe est correctement reconnu à la place. Je pensais qu'il n'y avait aucune différence entre l'utilisateur et le système, à côté du fait que si je le définissais sur le système, tous les utilisateurs le verraient, tandis que l'utilisateur PATH est local. Est-ce que je fais quelque chose de mal?

EDIT 1:

Dans ce qui suit, vous pouvez voir d'abord le cas dans lequel C:\Program Files (x86)\WinMerge est ajouté à la variable System PATH (mais pas à l'utilisateur), puis lorsqu'il est ajouté à l'utilisateur PATH variable (mais pas au système). Dans le premier cas, la fenêtre Winmerge se lance correctement (non représentée) et comme vous pouvez le voir, le chemin est indiqué par la commande echo% PATH%. Dans le second cas, il ne démarre pas et le chemin n'est pas affiché par echo% PATH%. (notez que j'ai clairement confirmé avec OK et fermé les fenêtres de variables environnementales avant de prendre ces captures d'écran, et j'ai ouvert une nouvelle cmd juste après avoir changé PATH et appuyé sur ok). Ce problème peut être lié à ma question ici ( echo% PATH% s'étend-il uniquement au système ou également aux variables utilisateur? ) mais comme ce n'est peut-être pas le cas, j'ai posé deux questions différentes.

SYSTEM

USER

34
Millemila

Vous devez vous tromper ou avoir des problèmes environnementaux avec votre machine. L'ajout d'une variable d'environnement utilisateur PATH entraîne sa fusion dans l'environnement d'un nouveau processus.

Mise à jour: Peut-être que ceci commentaire de la rubrique MSDN sur les variables d'environnement pourrait être pertinent:

A découvert que sur Windows Server 2003, une fois que le PATH système passe à 1920 caractères, la variable d'environnement PATH utilisateur n'est plus fusionnée avec elle pour définir la variable d'environnement PATH du processus, même si le PATH système complet (même s'il est plus grand) sera inclus dans la variable PATH du processus.

43
David Heffernan

Sous Windows 7, assurez-vous également que le chemin d'accès système ne se termine pas par une barre oblique inverse. Si c'est le cas, le CHEMIN D'UTILISATEUR est ajouté au chemin du système comme d'habitude, mais après un saut de ligne, ce qui casse les choses. Dans ce dernier cas, la simple commande "path" et "echo% PATH%" affichera 2 sorties différentes.

0
coredump