Làm thế nào là một chương trình không nằm trong con đường của tôi đang chạy? [bản sao]


57

Có thể trùng lặp:
Tại sao tôi có thể thực thi một chương trình không nằm trong biến môi trường PATH của mình?

Tôi đã dạy cho đồng nghiệp về% PATH% và thấy rằng nếu tôi chạy "Firefox", nó hoạt động, nhưng thật ngạc nhiên khi thấy rằng nó không nằm trong con đường của tôi.

Tôi đang thiếu gì?


2
Nó phụ thuộc vào ngữ cảnh. Nếu bạn đang nhập "firefox" từ một dòng lệnh, thì firefox.exe phải nằm trong đường dẫn hoặc trong các thư mục Windows hoặc Windows \ System32. Nếu bạn đang nhập "Firefox" trong hộp thoại Run, sổ đăng ký Đường dẫn ứng dụng được sử dụng, vì vậy firefox.exe được đăng ký tại đó.
boot13

Cảm ơn boot13, tôi không biết các khóa đăng ký Đường dẫn ứng dụng.
Mathew

Câu trả lời:


101

Nếu bạn đang cố chạy một tệp thực thi bằng cách chỉ định tên của nó, Windows sẽ tìm tệp ở các vị trí sau :

  1. Các thư mục làm việc hiện tại.
  2. Các Windowsthư mục duy nhất (không có thư mục con được tìm kiếm).
  3. Các Windows\System32thư mục.
  4. Các thư mục được liệt kê trong biến môi trường PATH.
  5. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths(cũng HKEY_CURRENT_USERkể từ Windows 7)

Microsoft thực sự khuyên bạn nên "đăng ký" các ứng dụng trong App Pathskhóa con để tránh yêu cầu các ứng dụng sửa đổi PATHbiến môi trường hệ thống . Trình cài đặt của ứng dụng sẽ đăng ký thực thi.


3
Một trong những câu trả lời hay nhất cho câu hỏi tôi từng thấy. +1
Everett

Thế là xong, cảm ơn ngài. Học điều mới mỗi ngày.
Mathew

8
@Mathew Bạn được chào đón. Hãy nhớ rằng khoá con "Đường dẫn ứng dụng" cũng tồn tại trong tổ ong HKCU cho các ứng dụng chỉ được cài đặt cho một người dùng .
JC2k8

1
Vì vậy, đó là lý do tại sao tôi không bao giờ thực sự phải loay hoay với PATH cho đến khi tôi chuyển từ phát triển .NET sang phát triển Java. Tôi chưa bao giờ thực sự xem xét tại sao mọi thứ trong phát triển .NET "chỉ hoạt động"!
Stephen Swensen

2
Điều này chỉ đúng với hộp thoại Windows Run, trong cmd.exe và powershell only 1. đến 4. được sử dụng, xem thêm bình luận của boot13.
Alexander
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.