Kürzlich habe ich dem Windows-PFAD manuell ein Verzeichnis hinzugefügt, indem ich in die Systemsteuerung -> System -> Erweiterte Systemeinstellungen -> Umgebungsvariablen -> Benutzervariablen -> PFAD gegangen bin. (Windows 7, 64-Bit)
Zeigt nach dem Neustart und dem Starten von cmd.exe an, echo %PATH%
dass dies funktioniert hat: Ich sehe das Verzeichnis, das ich kürzlich in der Ausgabe hinzugefügt habe.
Nach dem Start von Git Bash enthält die Ausgabe von echo $PATH
dieses Verzeichnis jedoch nicht.
Ich könnte export PATH=$PATH:/c/my/path
meinen bashrc hinzufügen, aber ich möchte lieber Git Bash nur PATH von Windows erhalten, damit ich nicht daran denken muss, Pfade zu zwei Stellen hinzuzufügen. Wie kann das erreicht werden?
(Eine allgemeinere Frage ist, wie Git Bashs $ PATH eingerichtet wird. Ich sehe ein paar Einträge, die an verschiedenen Stellen wiederholt werden. Einige Dinge in Windows% PATH% befinden sich in Git Bashs $ PATH, andere nicht. Was alles passiert vorher Ich erhalte die Git Bash-Eingabeaufforderung, die $ PATH berührt?)
C:\cygwin\usr\x86_64-w64-mingw32\sys-root\mingw\bin
.Antworten:
In einer msysgit git bash-Sitzung wird das Skript verwendet
share/WinGit/Git Bash.vbs
, das nicht auf die Umgebungsvariable zugreift oder diese ändertPATH
(wie dies beispielsweise in diesem nicht verwandten vbs-Skript der Fall wäre ).Bei einer Git-Bash-Sitzung wird einfach Folgendes vor Ihre aktuelle hinzugefügt
PATH
:Es ist möglich, dass die mit msysgit gepackte Mingw-Sitzung keine von einer
bin
anderen Mingw-Installation berücksichtigt : Sie können dies überprüfen, indem Sie ein anderes (einfacheres) Verzeichnis auf Ihr Verzeichnis setzenPATH
und prüfen, ob es in Ihrer Git-Bash-Sitzung noch sichtbar ist. Wenn nicht, handelt es sich um ein allgemeineres Problem, das alle Verzeichnisse betrifft , die Sie dem PATH hinzufügen würden.quelle
"c:\Program Files\Java\jdk1.8.0_25"\bin
in meinem Windows-Pfad wird/c/Program Files/Java/jdk1.8.0_25"/bi
in den Git-Bash-Pfad konvertiert (es fehlen das erste und das letzte Zeichen). Die Frage ist also, wie geschieht dies?Hier ist meine kleine Problemumgehung für ein ähnliches Problem (MSYS2-Bash unter Windows 10).
Die Idee ist, die erforderlichen Pfade in Pfade im Unix-Stil umzuwandeln und sie an die Bash-Datei $ PATH anzuhängen, die alle in .bashrc erstellt wurde.
Fügen Sie die erforderlichen Pfade nicht an Win PATH an. Erstellen Sie stattdessen eine neue Umgebungsvariable in Windows, z. B. MSYS2_WINPATH, und hängen Sie alle durch Semikolons getrennten Windows-Pfadverzeichnisse an diese Variable an. Hängen Sie% MSYS2_WINPATH% an% PATH% an.
Fügen Sie dies nun in Ihre .bashrc -
quelle
Wenn der PATH-Wert zu lang ist, nachdem die PATH-Variable Ihres Benutzers mit der Umgebungs-PATH-Variable verknüpft wurde, kann Windows die PATH-Variable des Benutzers nicht automatisch verknüpfen.
Dies kann leicht passieren, nachdem eine neue Software installiert wurde und etwas zu PATH hinzugefügt wurde, wodurch vorhandene installierte Software beschädigt wird. Windows schlägt fehl!
Die beste Lösung besteht darin, eine der PATH-Variablen in der Systemsteuerung zu bearbeiten und nicht benötigte Einträge zu entfernen. Öffnen Sie dann ein neues CMD-Fenster und prüfen Sie, ob alle Einträge in "echo% PATH%" angezeigt werden.
quelle
Versuchen Sie, das Verzeichnis an den Anfang Ihrer Pfadvariablen zu verschieben. Ich hatte das gleiche Problem wie Sie nach der Installation von p4merge. Das Perforce-Verzeichnis wurde dem Pfad hinzugefügt und p4merge wurde von cmd.exe gefunden, nicht jedoch von git shell (mingw). Nach einer erfolglosen Suche habe ich versucht, die Variable so zu bearbeiten, dass das Perforce-Verzeichnis zuerst in meinem Pfad angezeigt wurde. Ich habe die Git-Shell gestartet und, voila, das Verzeichnis ist in der Ausgabe von enthalten
$ echo $path
und$ p4merge
öffnet p4merge.Dies ist eine Art lahme Antwort, da ich keine Ahnung habe, warum es funktioniert, aber wenn die Umgehung jemand anderem hilft, großartig.
quelle