risposta-alla-domanda-sullo-sviluppo-web-bd.com

Sistema contro la variabile ambientale PATH dell'utente ... winmerge funziona solo se aggiungo il percorso all'utente PATH

Se aggiungo C:\Program Files (x86)\WinMerge alla variabile User PATH (facendo clic con il pulsante destro del mouse su computer -> impostazioni di sistema avanzate -> variabili ambientali), una volta aperto un nuovo cmd Shell WinmergeU.exe non viene riconosciuto . Se aggiungo quel percorso alla variabile System PATH, invece WinmergeU.exe viene riconosciuto correttamente. Pensavo che non ci fosse alcuna differenza tra Utente e Sistema, oltre al fatto che se l'ho impostato su Sistema tutti gli utenti lo vedrebbero, mentre l'utente PATH è locale. Sto facendo qualcosa di sbagliato?

MODIFICA 1:

Di seguito puoi vedere prima il caso in cui C:\Program Files (x86)\WinMerge viene aggiunto alla variabile System PATH (ma non all'utente), quindi quando viene aggiunto all'utente PATH variabile (ma non per il sistema). Nel primo caso la finestra di Winmerge si avvia correttamente (non mostrata) e come puoi vedere il percorso è mostrato dal comando echo% PATH%. Nel secondo caso non si avvia e il percorso non viene mostrato da echo% PATH%. (nota che ho chiaramente confermato con OK e chiuso le finestre delle variabili ambientali prima di prendere questi screenshot, e ho aperto un nuovo cmd subito dopo aver cambiato PATH e premuto ok). Questo problema potrebbe essere correlato alla mia domanda qui ( l'eco% PATH% si espande solo al sistema o anche alle variabili utente? ) ma dal momento che potrebbe non essere stato pubblicato due domande diverse.

SYSTEM

USER

34
Millemila

Devi avere qualcosa di sbagliato o avere problemi ambientali con la tua macchina. L'aggiunta di una variabile d'ambiente PATH utente comporta la fusione nell'ambiente di un nuovo processo.

Aggiornamento: Forse questo commento dall'argomento MSDN sulle variabili di ambiente potrebbe essere pertinente:

Abbiamo scoperto che su Windows Server 2003, una volta che il PATH di sistema ha superato i 1920 caratteri, la variabile d'ambiente PATH dell'utente non viene più unita ad essa per impostare la variabile d'ambiente PATH di processo, anche se l'intero PATH di sistema (anche se più grande) verrà incluso in la variabile di processo PATH.

43
David Heffernan

Su Windows 7, assicurati anche che il percorso del sistema non termini con una barra rovesciata. In tal caso, il PERCORSO UTENTE viene aggiunto al percorso di sistema come al solito, ma dopo un'interruzione di linea, che interrompe le cose. In quest'ultimo caso, il semplice comando "path" e "echo% PATH%" stamperanno 2 output diversi.

0
coredump