Wenn ich meinen PATH aktualisieren entweder mit dem integrierten Dialogumgebungsvariablen oder so etwas wie Pfad - Editor , und dann eine Eingabeaufforderung öffnen, wird die Änderungen an meinen PATH nicht mit der Konsole registrieren, je nachdem , wo die Eingabeaufforderung war angefangen von.
Wenn ich zum Beispiel meinen PFAD bearbeite und dann cmd.exe über das Startmenü oder eine Verknüpfung auf dem Desktop starte, sieht mein PFAD gut aus: Er wurde erfolgreich aktualisiert. Wenn ich cmd.exe jedoch über eine andere Verknüpfung als das Startmenü oder den Desktop starte, wird der neue Pfad nicht gelesen und stattdessen der alte Pfad. Es ist sehr seltsam.
Ich habe versucht, die Eingabeaufforderung über eine Verknüpfung auf dem Desktop auszuführen, und es funktioniert einwandfrei. Ich kopiere dann genau diese Verknüpfung in einen Unterordner auf dem Desktop und bekomme das Problem, dass der Pfad nicht aktualisiert wird.
Mir ist klar, dass dies ziemlich schwer zu erklären ist, und deshalb habe ich einen Screencast erstellt, um dieses Problem in Aktion zu zeigen .
Hier ist ein Screenshot der Tastenkombination für die Eingabeaufforderung, die in diesem Screencast angezeigt wird:
Dies ist unter Windows Vista Home Premium SP2 der Fall.
quelle
explorer
erkennt jedoch Umgebungsänderungen in der Registrierung (zu der das Dialogfeld gehörtrundll32
) und aktualisiert seine eigene Umgebung automatisch. (Zumindest in XP ist dies der Fall.) Aus diesem Grund sind Änderungen sichtbar, wenn Sie mitcmd
einer Verknüpfung beginnen.echo $PATH
es nicht funktioniert. Ich nahm an, dass es frisch sein würde, kam aber nicht richtig heraus, bis ich alle Git Bash-Tabs und ConEmu geschlossen hatte.Wie Rowland vorschlägt, liest Rowland beim Starten eines neuen Prozesses die Umgebungsvariablen des Prozesses, der ihn startet. Wenn Sie eine Eingabeaufforderung über das Startmenü oder den Desktop starten , werden daher die Umgebungsvariablen gelesen, von
explorer.exe
denen aus, wie von Grawity vorgeschlagen, Änderungen an den Umgebungseinstellungen in der Registrierung festgestellt werden. Daher wird mein neuer PFAD in Eingabeaufforderungen angezeigt, die von der gestartet werden Desktop oder Startmenü.Der Grund, warum ich in dem von mir geposteten Screencast keine Aktualisierungen meines PATH sehe, ist, dass ich ursprünglich ein Explorer-Fenster mit FARR gestartet habe ,
FindAndRunRobot.exe
das den übergeordneten Prozess erstellt hat. FARR erkennt Änderungen in der Umgebung nicht automatisch, und aus dieser Umgebung stammende untergeordnete Prozesse erfassen den neuen PFAD nicht. Ich hatte auch die Option " Ordnerfenster in einem separaten Prozess starten" im Explorer eingestellt, was bedeutet, dass alle explorer.exe-Fenster, die ich nach dem ersten von FARR geöffneten Fenster geöffnet habe, auch Kinder von FARR .Wenn Sie die Option " Ordnerfenster in einem separaten Prozess
explorer.exe
starten" deaktivieren, werden unter FARR keine neuen Prozesse erstellt, was mein Problem löst. Ich starte jedoch auch Konsolenfenster und andere Dinge direkt von FARR aus. Diese erhalten auch die alten Umgebungseinstellungen. Wenn ich FARR neu starte, werden die neuen Umgebungseinstellungen übernommen.Hier ist ein Screenshot von Process Explorer, der Prozesse zeigt, die von FARR erzeugt wurden. Keiner dieser Prozesse erhält die neuen Umgebungseinstellungen von der obersten Ebene, es
explorer.exe
sei denn, ich starte FARR neu:quelle