Як запускається програма, яка не на моєму шляху? [дублікат]


57

Можливий дублікат:
Чому я можу виконати програму, яка не входить до моєї змінної середовища PATH?

Я навчав колегу про% PATH% і виявив, що якщо я запускаю "Firefox", він працює, але здивувався, побачивши, що це не на моєму шляху.

Що я пропускаю?


2
Це залежить від контексту. Якщо ви вводите "firefox" з командного рядка, тоді firefox.exe повинен бути або в шляху, або в папках Windows або Windows \ System32. Якщо ви вводите "Firefox" у діалоговому вікні "Запуск", використовується реєстр шляхів додатків, тому firefox.exe зареєстрований там.
boot13

Дякую boot13, мені не було відомо про ключі реєстру App Paths.
Меттью

Відповіді:


101

Якщо ви намагаєтеся запустити виконуваний файл, вказавши лише його ім'я, Windows шукає файл у таких місцях :

  1. Поточний робочий каталог.
  2. Лише Windowsкаталог (не шукаються підкаталоги).
  3. Windows\System32Каталог.
  4. Каталоги, перелічені в змінній середовища PATH.
  5. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths(також HKEY_CURRENT_USERз Windows 7)

Microsoft фактично рекомендує "реєструвати" програми в App Pathsпідрозділі, щоб уникнути необхідності додатків змінювати PATHзмінну системного середовища. Інсталятор програми зареєструє виконуваний файл.


3
Одна з найкращих відповідей на запитання, яке я коли-небудь бачив. +1
Еверетт

Це було все, дякую сер. Дізнайтеся щось нове щодня.
Матвій

8
@Mathew Запрошуємо вас Майте на увазі, що підрозділ "Шляхи додатків" також існує у вулику HKCU для додатків, встановлених лише для одного користувача .
JC2k8

1
Тож тому мені ніколи не доводилося спілкуватися з PATH, поки я не перейшов від розробки .NET до розробки Java. Я ніколи не замислювався, чому все в .NET-розробці "просто працює"!
Стівен Свенсен

2
Це справедливо лише для діалогового вікна "Запуск Windows", у cmd.exe та повноцінних оболонках використовуються лише 1. - 4. див. Також коментар boot13.
Олександр
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.