Wenn ich Git Bash (unter Windows) verwende, kann ich keine ausführbare Datei ausführen, ohne den vollständigen Pfad anzugeben, obwohl sie sich in einem Ordner befindet, der sich in meiner PATH-Variablen befindet. Sieht so aus, als würde Bash es nicht erkennen. Warum? Kann ich das beheben?
107
Antworten:
Verstanden. Als Windows-Benutzer bin ich es gewohnt, ausführbare Namen ohne Erweiterungen einzugeben. In meinem Fall wollte ich eine Datei namens ausführen
cup.bat
. In einer Windows-Shellcup
würde das Tippen ausreichen. Bash funktioniert nicht so, es will den vollständigen Namen. Das Tippencup.bat
löste das Problem. (Ich konnte die Datei jedoch nicht ausführen, da bash anscheinend den Inhalt nicht verstehen konnte.)Ein Grund mehr, auf Posh-Git umzusteigen.
Danke @Tom, dass du mich in die richtige Richtung gelenkt hast.
quelle
alias cup=cup.bat
.bat
; Die Erweiterung impliziert ein Windows-Batch-Skript - insbesondere auf einem Windows-Computer.Vielleicht sieht bash Ihren Windows-Pfad nicht. Geben Sie
env|grep PATH
in bash zu bestätigen , was Weg es sieht.quelle
Nach dem Kommentar von @ Daniel und dank der Antwort von @ Tom fand ich heraus, dass Git Bash zwar den PATH verwendet, aber nicht die neuesten Pfade, die ich kürzlich installiert habe. Um dieses Problem zu umgehen, habe ich in meinem Home-Verzeichnis (Windows) eine Datei mit dem Namen hinzugefügt:
.bashrc
und der Inhalt wie folgt:
PATH=$PATH:/c/Go/bin
weil ich Go installiert habe und dieser Pfad die ausführbare Datei enthielt
go.exe
Jetzt konnte Git bash den Befehl erkennen:go
Vielleicht hätte in meinem Fall nur ein Neustart des Systems gereicht, aber ich bin froh, dass diese Lösung auf jeden Fall funktioniert.
quelle
PATH=$PATH:/c/Go/bin:/c/other/path
c:/Users/[myusername]/
Das ist mein Home-VerzeichnisWährend Sie Git installieren, können Sie die unten gezeigte Option auswählen. Dies hilft Ihnen dabei, den Pfad automatisch festzulegen.
Es hat für mich geklappt :)
quelle
Erstellen Sie eine Datei in C: \ Users \ USERNAME mit dem Namen config.bashrc, die Folgendes enthält:
Verschieben Sie nun die Datei in der Befehlszeile an den richtigen Speicherort:
quelle
Starten Sie den Computer neu, nachdem Sie PATH einen neuen Wert hinzugefügt haben.
quelle
Alte Frage, aber es kann jemand anderem helfen.
Ich habe meinen PATH benutzerweit geändert, danach habe ich mich einfach abgemeldet und wieder angemeldet.
Das ist es!
git bash
hat den neuen PATH-Wert korrekt geladen.quelle
export PATH=$NEW_PATH:$PATH
. Und mach Sachen normalIch kann bestätigen, dass durch einen Neustart des Systems sichergestellt wird, dass der in der Umgebungsvariablen in Windows festgelegte Pfad von git erfasst wird und es keinen anderen automatischen Weg gibt.
quelle
Es scheint, dass die Hauptursache hier darin liegt, dass Git Bash die Variable% USERPROFILE% nicht immer korrekt analysieren kann. Anstatt es relativ zu C: \ Users \\ zu machen, erhält es den Wert C: \ Windows \ System 32 \ systemprofile \ Nachdem es in eine vollständig qualifizierte Adresse geändert wurde, funktioniert es, und selbst wenn ich es später zurücksetze, bleibt Git Bash erhalten hat aus irgendeinem Grund den richtigen Pfad.
quelle
Deinstallieren Sie unter Windows 10 einfach git und installieren Sie es erneut. Die Umgebungsvariable wird automatisch für Sie festgelegt. Ich hatte versehentlich die Umgebungsvariable entfernt und konnte git in meiner IDE nicht verwenden. Durch die Neuinstallation von git wurde dieses Problem behoben.
quelle
Wenn Ihr
git-bash
‚sPATH
Geschenke , aber nicht letzte und Sie wollen keinen Neustart , sondern regenerierenPATH
s, können Sie versuchen , alle zu schließencmd.exe
,powershell.exe
undgit-bash.exe
und ein cmd.exe Fenster aus dem Startmenü oder Desktop - wieder öffnen und sehen , ob dasPATH
env aktualisiert . Wenn Sie systemweit geändert haben, müssenPATH
Sie auch ein privilegiertes cmd-Fenster öffnen.Hinweis: Dies funktioniert nicht mit allen Windows-Versionen und das Öffnen an einer
cmd.exe
anderen Stelle als dem Startmenü oder dem Desktop funktioniert möglicherweise nicht. Es wurde mit meinen 3 Computern getestet und 2 davon funktionieren. Ich habe nicht herausgefunden, warum dies funktioniert, aber da diePATH
Umgebungsvariable beim An- und Abmelden automatisch generiert wird, möchte ich diese Variable nicht durch die Verkettung von Variablen durcheinander bringen.quelle
Für mich war es am bequemsten, 1) das Verzeichnis "bin" im Stammverzeichnis von Laufwerk C: 2 zu erstellen. 2) "C: / bin" hinzuzufügen. zu PATH in "Arbeitsplatz -> Eigenschaften -> Umgebungsvariablen"
quelle
Ich stoße auf dieses Problem, wenn ich versuche, mit mingw die xgboost-Bibliothek in Win10 zu kompilieren. Endlich habe ich die Lösung gefunden.
Erstellen Sie eine Datei mit dem Namen .bashrc in Ihrem Home-Verzeichnis (normalerweise C: \ Users \ username). Fügen Sie dann den Pfad hinzu. Denken Sie daran, Anführungszeichen zu verwenden, wenn Ihr Pfad leer ist, und denken Sie daran, / c / anstelle von C: / zu verwenden
Beispielsweise:
PATH = $ PATH: "/ c / Programme / mingw-w64 / x86_64-7.2.0-posix-seh-rt_v5-rev1 / mingw64 / bin"
quelle
Ich bin meinerseits auf einen dummen Fehler gestoßen. Ich hatte einen systemweiten und einen Benutzervariablenpfad für meinen Golang-Arbeitsbereich auf meinem Windows 10-Computer festgelegt. Als ich den Variablenpfad für redundante Systeme entfernte und mich ab- und wieder anmeldete, konnte ich EXE-Dateien in Bash aufrufen und go env mit Erfolg aufrufen.
Obwohl OP beantwortet wurde, ist dies ein weiteres Problem, das Bash davon abhalten könnte, Ihre Pfade zu sehen. Ich habe gerade Bash erneut mit diesem Problem getestet und es scheint einen Konflikt zu geben, der Bash daran hindert, einem der Pfade zu folgen.
quelle
Ich weiß, dass es eine alte Frage ist, aber es gibt zwei Arten von Umgebungsvariablen. Derjenige, der dem Benutzer gehört, und der eine, der systemweit ist. Je nachdem, wie Sie git bash öffnen (mit Benutzer- oder Administratorrechten), kann die verwendete Umgebungsvariable PATH von Ihren Benutzervariablen oder von Systemvariablen stammen. Siehe unten:
Überprüfen Sie, wie in einer vorherigen Antwort erwähnt, mit dem Befehl
env|grep PATH
, welche Sie verwenden, und aktualisieren Sie Ihre Variable entsprechend. Übrigens muss das System nicht neu gestartet werden. Schließen Sie einfach die Git Bash und öffnen Sie sie erneutquelle
In meinem Fall geschah es während der Installation von Heroku Cli und Git Bash. Hier ist, was ich getan habe, um zu arbeiten.
bin an diesen Ort gekommen
C:\Users\<username here>\AppData\Local
und löschen Sie die Datei in meinem Fall Heroku Ordner. Also habe ich den Ordner gelöscht und cmd ausgeführt. Es funktioniert
quelle
Entkommen Sie beim Bearbeiten / Hinzufügen Ihrer $ PATH-Variablen keinen (\) Sonderzeichen. Ein Anwendungsverzeichnis in Programmdateien sieht beispielsweise folgendermaßen aus:
PATH=$PATH:/c/Program Files (x86)/random/application
Tu das nicht:
PATH=$PATH:/c/Program\ Files\ \\(x86\\)/random/application/
Hoffe das hilft.
quelle
PATH=$PATH:/c/Program Files (x86)/random/application
... dies ist keine korrekte Bash-Syntax zum Einstellen des PATH. Dadurch wird das Verzeichnis vorübergehend/c/Program
zum Pfad hinzugefügt und anschließend versucht, das ProgrammFiles
mit Argumenten auszuführen(x86)/random/application
. Das einzige, was an Ihrem Beispiel "Mach das nicht" falsch ist, ist, dass es die umgekehrten Schrägstriche für die Klammern verdoppelt hat, wenn einzelne umgekehrte Schrägstriche korrekt sind.Für diejenigen unter Ihnen, die alle oben genannten Methoden einschließlich Windows-Systemumgebung ausprobiert haben. Variablen, .bashrc, .bashprofile usw. UND können den richtigen Pfad in 'echo $ PATH' sehen ... Ich habe möglicherweise eine Lösung für Sie.
Unterdrücke die Fehler mit exec 2> / dev / null
Mein Skript läuft einwandfrei, hat aber Fehler "Befehl nicht gefunden" oder "Kein Verzeichnis gefunden" ausgelöst, obwohl die Pfade, soweit ich das beurteilen kann, leer waren. Wenn Sie diese Fehler unterdrücken (möglicherweise muss auch 'set + e' hinzugefügt werden), funktioniert dies ordnungsgemäß.
quelle
Erstellen Sie eine Benutzervariable mit dem Namen Path und fügen Sie als Wert% Path% hinzu. Wie ich bemerkt habe, sieht Git Bash nur Benutzervariablen und keine Systemvariablen. Durch Ausführen des oben beschriebenen Verfahrens wird Ihre Systemvariable in den Benutzervariablen verfügbar gemacht.
quelle
In Windows 7-Pfadumgebungsvariablen füge ich nur am Ende des Systemvariablenpfads hinzu
\; C: \ Programme \ Git \ bin
und es funktioniert jetzt!
quelle