Tại sao giá trị biến môi trường PATH khác nhau nếu chúng ta mở dấu nhắc lệnh từ các vị trí khác nhau?


0

Tôi có một gói có thêm và xóa một mục (giả sử C: \ my_entry) cho biến môi trường PATH trong quá trình cài đặt và gỡ cài đặt tương ứng. Tôi có thể thấy mục đó đang được thêm / xóa vào / từ biến PATH bằng cách xác minh khoá đăng ký HKLM \ HỆ THỐNG \ CurrentControlset \ Control \ Trình quản lý phiên \ Môi trường \ Đường dẫn .

Nhưng tôi đã quan sát các giá trị khác nhau cho biến môi trường PATH từ dấu nhắc lệnh.

Sau khi cài đặt

Nếu tôi mở dấu nhắc lệnh dưới dạng Win + R, Nhập cmd rồi nhập, tôi có thể thấy C: \ my_entry trong biến PATH.

Nếu tôi mở dấu nhắc lệnh (cmd.exe) từ thư mục C: \ Windows \ System32, tôi không thể C: \ my_entry trong biến PATH.

Sau khi chưa cài đặt

Nếu tôi mở dấu nhắc lệnh như Win + R, Nhập cmd rồi nhập, tôi vẫn có thể thấy C: \ my_entry trong biến PATH mặc dù đã bị xóa khỏi sổ đăng ký.

Xin vui lòng cho tôi biết tại sao giá trị biến môi trường PATH khác nhau nếu chúng tôi mở dấu nhắc lệnh từ các vị trí khác nhau? Và tại sao giá trị biến môi trường PATH khác với dấu nhắc lệnh so với giá trị có trong Registry?

Câu trả lời:


0

Biến môi trường thường là thừa hưởng - một quy trình mới nhận được một bản sao từ bất cứ thứ gì đã đưa ra không phải từ cơ quan đăng ký. (ProcExp hoặc Process Hacker có thể hiển thị env của từng tiến trình riêng lẻ, cùng với hệ thống phân cấp thực tế.)

Lần duy nhất các khóa đăng ký được đọc là khi bạn đăng nhập và khi một số chương trình (như trình cài đặt) báo cho tất cả các ứng dụng làm mới env của chúng. (Thông thường chỉ Explorer phản ứng với yêu cầu đó.)

Vì vậy, có thể một quy trình Explorer (một xử lý vỏ thanh tác vụ) đã làm mới môi trường của nó sau khi cài đặt, nhưng một cửa sổ thư mục xử lý thì không. (Hoặc có thể bạn đã chạy cmd từ trình quản lý tệp của bên thứ ba.)

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.