Git Bash'i (Windows'ta) kullandığımda, PATH değişkenimdeki bir klasörde yer almasına rağmen, tam yolunu belirtmeden herhangi bir yürütülebilir dosyayı çalıştıramıyorum. Görünüşe göre bash bunu tanımıyor. Neden? Düzeltebilir miyim?
Git Bash'i (Windows'ta) kullandığımda, PATH değişkenimdeki bir klasörde yer almasına rağmen, tam yolunu belirtmeden herhangi bir yürütülebilir dosyayı çalıştıramıyorum. Görünüşe göre bash bunu tanımıyor. Neden? Düzeltebilir miyim?
Yanıtlar:
Anladım. Bir Windows kullanıcısı olarak, uzantılar olmadan çalıştırılabilir isimler yazmaya alıştım. Benim durumumda adlı bir dosyayı çalıştırmak istedim cup.bat
. Bir Windows kabuğunda yazmak cup
yeterli olacaktır. Bash bu şekilde çalışmaz, tam adı ister. Yazıyorcup.bat
sorunu çözdü. (Görünüşe göre bash içeriğini anlayamadığı için dosyayı çalıştıramadım)
Posh-git'e geçmek için bir neden daha ..
Beni doğru yönü gösterdiğin için teşekkürler @ Tom.
alias cup=cup.bat
.bat
; uzantı, özellikle bir Windows makinesinde bir Windows toplu komut dosyası anlamına gelir.
Belki bash, Windows yolunu görmüyor. Tip env|grep PATH
hangi yolu onaylayın bash o görür.
@ Daniel'in yorumunu takiben ve @ Tom'un cevabı sayesinde, Git bash'ın gerçekten PATH'i kullandığını, ancak yakın zamanda yüklediğim en son yolları kullanmadığını öğrendim. Bu sorunu çözmek için, ev (windows) dizinime şu adda bir dosya ekledim:
.bashrc
ve içerik aşağıdaki gibidir:
PATH=$PATH:/c/Go/bin
çünkü Go'yu kuruyordum ve bu yol çalıştırılabilir go.exe
Now Git'i içeriyordu bash komutu tanıyordu:
go
Belki de sadece bir sistemin yeniden başlatılması benim durumumda yeterli olurdu, ancak bu çözümün her durumda işe yaramasına sevindim.
PATH=$PATH:/c/Go/bin:/c/other/path
c:/Users/[myusername]/
bu benim ana
Git'i kurarken aşağıda gösterilen seçeneği seçebilirsiniz, yolu otomatik olarak ayarlamanıza yardımcı olacaktır.
Benim için çalıştı :)
C: \ Users \ USERNAME'de config.bashrc adlı bir dosya oluşturun ve şunları içerir:
PATH=$PATH:/c/Program\ Files\ \(x86\)/Application\ with\ space
Şimdi dosyayı komut satırında doğru konuma taşıyın:
mv config.bashrc .bashrc
Eski soru ama başka birine yardımcı olabilir.
PATH kullanıcı genişliğimi değiştirdim, bundan sonra sadece oturumu kapatıp tekrar giriş yapıyorum.
İşte bu! git bash
yeni PATH değerini doğru şekilde yükledi.
export PATH=$NEW_PATH:$PATH
. Normalde bir şeyler yapın
PATH'e yeni değer ekledikten sonra bilgisayarı yeniden başlatın.
Sistemin yeniden başlatılmasının, windows ortam değişkenindeki PATH setinin git tarafından alındığından ve başka otomatik yol olmadığından emin olacağından emin olabilirim.
Görünüşe göre buradaki temel neden Git Bash% USERPROFILE% değişkenini her zaman doğru şekilde ayrıştıramıyor. Bunu C: \ Users \\ ile ilişkili yapmak yerine, C: \ Windows \ System 32 \ systemprofile \ değerini alır Bunu tam nitelikli bir adrese değiştirdikten sonra, Çalışır ve daha sonra tekrar ayarlasam bile Git Bash hala bazı nedenlerden dolayı doğru PATH'a sahiptir.
Durumda sizin de git-bash
'ın PATH
hediye değil son ve yeniden başlatma istiyor ancak rejenere olmaz PATH
tüm kapanış deneyebilirsiniz, s cmd.exe
, powershell.exe
ve git-bash.exe
Başlat Menüsü veya Masaüstünden bir cmd.exe pencereyi yeniden ve görmek PATH
env güncellenir . Sistem genelinde değişiklik yaptıysanız, PATH
ayrıcalıklı bir cmd penceresi de açmanız gerekir.
Not: Bu, tüm Windows sürümlerinde çalışmaz cmd.exe
ve Başlat Menüsü veya Masaüstü dışında herhangi bir yerde açılmayabilir , 3 bilgisayarımla test edilmiş ve 2'si çalışıyor. Bunun neden çalıştığını anlamadım, ancak PATH
oturum açıp çıkış yaptığımda ortam değişkeni otomatik olarak oluşturulduğundan, bu değişkeni değişken birleştirme ile karıştırmam.
Win10'da xgboost lib'yi derlemek için mingw kullanmaya çalıştığımda bu problemle karşılaşıyorum. Sonunda çözümü buldum.
Ana dizininizde .bashrc adlı bir dosya oluşturun (genellikle C: \ Users \ kullanıcı adı). Ardından yolu ona ekleyin. Yolunuz boşluk içeriyorsa tırnak işareti kullanmayı unutmayın ve C: / yerine / c / kullanmayı unutmayın.
Örneğin:
PATH = $ PATH: "/ c / Program Dosyaları / mingw-w64 / x86_64-7.2.0-posix-seh-rt_v5-rev1 / mingw64 / bin"
Benim açımdan aptalca bir hatayla karşılaştım. Windows 10 makinemdeki golang çalışma alanım için geniş bir sistem ve kullanıcı değişken yolu setim vardı. Yedekli sistemler değişken yolunu kaldırdığımda ve oturumu kapatıp tekrar açtığımda, .exe dosyalarını bash'da ve go env'i başarıyla çağırabildim.
OP'nin yanıtlanmış olmasına rağmen bu, Bash'in yollarınızı görmesini engelleyebilecek başka bir sorundur. Sadece bu problemle bash'ı tekrar test ettim ve bu, bash'ın iki yoldan birini takip etmesini engelleyen bir tür çelişki veriyor gibi görünüyor.
Bunun eski bir soru olduğunu biliyorum ama iki tür ortam değişkeni var. Kullanıcıya ait olan ve sistem geneli olan. Git bash'ı nasıl açtığınıza bağlı olarak (kullanıcı ayrıcalığı veya yönetici ayrıcalığı ile), kullanılan PATH ortam değişkeni sizden Kullanıcı değişkenlerinden veya Sistem değişkenlerinden olabilir. Aşağıya bakınız:
önceki bir cevapta söylendiği gibi, env|grep PATH
hangisini kullandığınızı görmek için komutu kontrol edin ve değişkeninizi buna göre güncelleyin. BTW, sistemi yeniden başlatmaya gerek yok. Git bash'ı kapatın ve yeniden açın
Benim durumumda Heroku cli ve git bash yüklenirken oldu, İşte çalışmak için yaptığım şey.
bu konuma gittim
C:\Users\<username here>\AppData\Local
ve heroku klasörümdeki dosyayı sil. Bu yüzden klasörü çıkardım ve cmd'yi çalıştırdım. Çalışıyor
$ PATH değişkeninizi düzenlerken / eklerken (\) özel karakterlerinden kaçmayın. Örneğin, program dosyalarındaki bir uygulama dizini şöyle görünür:
PATH=$PATH:/c/Program Files (x86)/random/application
Bunu yapma:
PATH=$PATH:/c/Program\ Files\ \\(x86\\)/random/application/
Bu yardımcı olur umarım.
PATH=$PATH:/c/Program Files (x86)/random/application
... bu, PATH'i ayarlamak için doğru bash sözdizimi değildir. Bu, dizini geçici olarak /c/Program
yola ekleyecek , ardından programı Files
argümanlarla çalıştırmayı deneyecektir (x86)/random/application
. "Bunu yapma" örneğinizdeki tek yanlış şey, tek ters eğik çizgi doğru olduğunda, parantezler için ters eğik çizgilerin iki katına çıkmasıdır.
Windows sistem env dahil olmak üzere yukarıda belirtilen tüm yöntemleri deneyenler için. değişkenler, .bashrc, .bashprofile, vb. VE 'echo $ PATH'de doğru yolu görebilir ... Sizin için bir çözümüm olabilir.
exec 2> / dev / null kullanarak hataları bastırın
Komut dosyam iyi çalışıyor ancak 'komut bulunamadı' veya 'Dizin bulunamadı' hataları veriyordu, ancak anlayabildiğim kadarıyla yollar temizdi. Dolayısıyla, bu hataları bastırırsanız (ayrıca 'set + e' eklemeniz gerekebilir), düzgün çalıştığından.
Yol adlı bir Kullanıcı değişkeni oluşturun ve Git Bash'in Sistem Değişkenlerini değil, yalnızca Kullanıcı Değişkenlerini gördüğünü fark ettiğimden% Yol% değeri olarak ekleyin. Bahsedilen prosedürü uygulayarak, Sistem Değişkeninizi Kullanıcı Değişkenlerinde göstereceksiniz.
Windows 7 Yol Ortamı Değişkenlerinde Sistem Değişkeni yolunun sonuna ekliyorum
\; C: \ Program Dosyaları \ Git \ bin
ve şimdi çalışıyor!