PATH'imdeki değişiklikler neden tanınmıyor?


36

PATH'imi yerleşik Ortam Değişkenleri iletişim kutusunu veya Path Editor gibi bir şey kullanarak güncellediğimde ve ardından bir komut istemi açtığımda, PATH'imdeki değişiklikler komut isteminin nerede olduğuna bağlı olarak konsola kaydolmaz den başladı.

Örneğin, PATH'imi düzenlerim ve ardından Başlat Menüsü'nden cmd.exe'yi başlatırsam veya Masaüstündeki bir kısayom varsa, PATH'im iyi görünüyor: başarıyla güncellendi; Her yerde kısayoldan cmd.exe'yi başlarsanız ancak diğer Başlat Menüsü veya Masaüstü yerine, yeni YOLU okumak almaz ve yerine eski yol olsun. Çok garip.

Komut istemini masaüstündeki bir kısayoldan çalıştırmayı denedim ve iyi çalışıyor; Daha sonra aynı kısayolu masaüstündeki bir alt klasöre kopyaladım ve güncellenmeyen PATH problemini alıyorum.

Bunu açıklamanın oldukça zor olduğunu anladım, bu yüzden bu konuyu harekete geçirmek için bir senaryo hazırladım .

İşte o screencast görüldüğü gibi Komut İstemi kısayolun bir ekran görüntüsü:

Komut istemi kısayol ayarları

Bu, Windows Vista Home Premium SP2'dedir.

Yanıtlar:


30

Yeni bir işlem başlattığınızda (yeni bir komut satırı gibi), ortam değişkenlerini başlatan işlemden alır. Yol güncellendiğinde, yalnızca güncellemeyi gerçekleştiren işlem değiştiğini bilir ve siz tekrar oturum açana (kullanıcı başına ayarlar için) veya yeniden başlatmaya (sistem genelinde ayarlar için) kadar ayar yayılmaz.


2
Ancak, ana explorerişlem Kayıt Defteri'ndeki ortam değişikliklerini algılar (iletişim kutusu aittir rundll32) ve kendi ortamını otomatik olarak günceller. (En azından XP'de öyle.) Bu nedenle cmd, bir kısayoldan başladığınızda değişiklikler görülebilir .
Grawity

Rowland, bu bana tam olarak neden olduğunu sormak için yeterli bilgiyi sağladı, ancak sorumu tamamıyla cevaplamadı. Ayrıntılar için kendi cevabımı gör. Teşekkürler!
Charles Roper

Bu cevap için teşekkürler! Tek yapmam gereken komut istemimi kapatıp tekrar açmaktı.
user1477388

Bu benim için çözüm oldu! Windows için Git Bash kullanıyorum ve bir multitab paketleyicide (ConEmu) ve neden echo $PATHişe yaramadığını merak ediyorum . Taze olacağını varsaydım ama tüm Git Bash sekmelerini ve ConEmu'yu kapatana kadar hemen çıkmadım.
Oliv Utilo

27

Rowland'ın önerdiği gibi, yeni bir sürece başlarken, ortam değişkenlerini başlatan işlemden okuyacaktır. Bu nedenle, Başlat Menüsü'nden veya Masaüstünden bir komut istemi başlatırkenexplorer.exe , Grawity'nin önerdiği gibi, kayıt defterindeki ortam ayarlarındaki değişiklikleri algıladığı ortam değişkenlerini okur ve böylece komut satırındaki yeni PATH'imi komut satırından başladım. Masaüstü veya Başlat Menüsü.

Yayınladığım screencastta PATH'imdeki güncellemeleri göremememin nedeni, başlangıçta FARR kullanarak FindAndRunRobot.exeana işlemi yapan bir tarayıcı penceresi başlatmamdı . FARR çevre değişikliklerini otomatik olarak algılamamaktadır ve bu nedenle, ortaya çıkarılan çocuk süreçleri yeni PATH'yi almamaktadır. Ayrıca Explorer'da ayarlanan ' ayrı pencerelerde klasör pencerelerini başlat ' seçeneğim vardı, bu da FARR'ın açtığı ilk pencerenin ardından açtığım tüm explorer.exe pencerelerinin FARR'ın çocuklarının olduğu anlamına geliyor .

' Klasör pencerelerini ayrı bir işlemde başlat ' seçeneğini devre dışı bırakarak, explorer.exeFARR altında sorunumu çözen yeni işlemler oluşturulmaz. Ancak, konsol pencerelerini ve diğer şeyleri doğrudan FARR'dan başlatıyorum; bunlar aynı zamanda eski ortam ayarlarını da alır. FARR'ı yeniden başlatırsam, yeni ortam ayarları yayılır.

İşte FARR'dan gelen süreçleri gösteren bir İşlem Gezgini ekran görüntüsü. explorer.exeFARR'ı yeniden başlatmadığım sürece , bu işlemlerden hiçbiri yeni ortam ayarlarını üst seviyeden almıyor:

süreç araştırmacısı


3
Cevabım neden oy kullandı? Bir kusur varsa, bana bildirin, ben de düzeltmeye çalışacağım.
Charles Roper

çok mantıklı.
lwpro2
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.