Bagaimana program yang tidak ada di jalur saya dijalankan? [duplikat]


57

Kemungkinan Duplikat:
Mengapa saya dapat menjalankan program yang tidak ada dalam variabel lingkungan PATH saya?

Saya mengajar rekan kerja tentang% PATH% dan menemukan bahwa jika saya menjalankan "Firefox", itu berfungsi, tetapi terkejut melihat bahwa itu tidak ada di jalur saya.

Apa yang saya lewatkan?


2
Itu tergantung pada konteksnya. Jika Anda memasukkan "firefox" dari baris perintah, maka firefox.exe harus berada di jalur atau di folder Windows atau Windows \ System32. Jika Anda memasukkan "Firefox" di dialog Run, registri App Paths digunakan, jadi firefox.exe terdaftar di sana.
boot13

Terima kasih boot13, saya tidak mengetahui kunci registri App Paths.
Mathew

Jawaban:


101

Jika Anda mencoba menjalankan executable dengan hanya menentukan namanya, Windows mencari file di lokasi berikut :

  1. Direktori kerja saat ini.
  2. Hanya Windowsdirektori (tidak ada subdirektori yang dicari).
  3. The Windows\System32direktori.
  4. Direktori yang tercantum dalam variabel lingkungan PATH.
  5. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths(juga HKEY_CURRENT_USERsejak Windows 7)

Microsoft sebenarnya merekomendasikan "mendaftarkan" aplikasi di App Pathssubkunci untuk menghindari kebutuhan aplikasi untuk memodifikasi PATHvariabel lingkungan sistem . Pemasang aplikasi akan mendaftarkan yang dapat dieksekusi.


3
Salah satu jawaban terbaik untuk pertanyaan yang pernah saya lihat. +1
Everett

Itu dia, terima kasih pak. Pelajari sesuatu yang baru setiap hari.
Mathew

8
@Mathew Sama-sama. Perlu diingat bahwa subkunci "Jalur Aplikasi" juga ada di sarang HKCU untuk aplikasi yang diinstal hanya untuk satu pengguna .
JC2k8

1
Jadi itu sebabnya saya tidak pernah benar-benar muck sekitar dengan PATH sampai saya beralih dari pengembangan .NET ke pengembangan Java. Saya tidak pernah benar-benar mempertimbangkan mengapa segala sesuatu dalam pengembangan .NET "hanya bekerja"!
Stephen Swensen

2
Ini hanya berlaku untuk dialog Windows Run, di cmd.exe dan hanya 1. yang digunakan untuk Powerhell, lihat juga komentar boot13.
Alexander
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.