Yolumda olmayan bir program nasıl çalışıyor? [çift]


57

Olası Çoğalt:
Neden PATH ortam değişkenimde olmayan bir programı çalıştırabilirim?

Bir iş arkadaşına% PATH% hakkında bir şeyler öğretiyordum ve "Firefox" çalıştırırsam işe yaradığını, ancak benim yolumda olmadığını görünce şaşırdığını gördüm.

Neyi kaçırıyorum?


2
Bu koşullara bağlıdır. Bir komut satırından "firefox" giriyorsanız, firefox.exe ya yolda ya da Windows ya da Windows \ System32 klasörlerinde olmalıdır. Çalıştır iletişim kutusuna "Firefox" giriyorsanız, Uygulama Yolları kayıt defteri kullanılır, bu nedenle firefox.exe orada kaydedilir.
boot13

Teşekkürler boot13, App Paths kayıt defteri anahtarlarının farkında değildim.
Mathew,

Yanıtlar:


101

Yürütülebilir bir dosyayı yalnızca adını belirterek çalıştırmaya çalışıyorsanız, Windows dosyayı aşağıdaki konumlarda arar :

  1. Geçerli çalışma dizini.
  2. Yalnızca Windowsdizin (alt dizin aranmaz).
  3. Windows\System32Dizin.
  4. PATH ortam değişkeninde listelenen dizinler.
  5. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths(ayrıca HKEY_CURRENT_USERWindows 7'den beri)

Microsoft App Paths, uygulamaların sistem PATHortamı değişkenini değiştirme gereksinimini önlemek için alt anahtardaki uygulamaları "kaydetmeyi" önerir . Uygulamanın yükleyicisi yürütülebilir dosyayı kaydeder.


3
Gördüğüm bir sorunun en iyi cevaplarından biri. +1
Everett

Öyleydi, teşekkür ederim efendim. Her gün yeni bir şeyler öğren.
Mathew

8
@Matthew Bir şey değil. "Uygulama Yolları" alt anahtarının, yalnızca bir kullanıcı için yüklenen uygulamalar için HKCU kovanında da bulunduğunu unutmayın .
JC2k8

1
Bu yüzden, .NET geliştirmeden Java geliştirmeye geçinceye kadar PATH ile uğraşmak zorunda kalmadım. Asla .NET geliştirmedeki her şeyin "sadece işe yaradığını" hiç düşünmedim!
Stephen Swensen

2
Bu, yalnızca Windows Çalıştır iletişim kutusu için geçerlidir, cmd.exe ve yalnızca 1. ile 4. arasındaki powershell kullanılır, ayrıca boot13'ün yorumuna bakın.
Alexander
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.