2009-10-31 37 views

Trả lời

11

Xem command search sequence trên Microsoft Technet

Các PATH và PATHEXT biến môi trường từng cung cấp một phần tử của chuỗi tìm kiếm: PATH là ra lệnh danh sách các thư mục "nơi" để xem và PATHEXT là danh sách thứ tự các phần mở rộng tệp ("nội dung") để tìm (trong trường hợp tiện ích mở rộng không được cung cấp rõ ràng trên dòng lệnh). Tuy nhiên, trước khi sử dụng PATH, thư mục hiện tại được tìm kiếm.

mặc định

Các PATHEXT biến để ".COM; .EXE; .BAT; .CMD"

+0

Tôi chỉ gọi gvim từ hộp thoại Run, và không có vấn đề gì PATHEXT được thiết lập để, nó chỉ gvim.exe chạy; ngay cả khi tôi nói gvim.bat tại hộp thoại chạy. – Jeenu

+1

@ Jeenu, điều này khá kỳ quặc. Một lời giải thích có khả năng tuy nhiên là một ví dụ khác của gvim (hoặc một tập tin bat tham chiếu nó) được tìm thấy trước vị trí PATH nơi bạn mong đợi nó. Xem lại đường dẫn theo cách thủ công, giống như bảng điều khiển sẽ thực hiện. (hoặc một cách khác để chứng minh điều này là tạm thời đổi tên exe trong thư mục mà bạn nghĩ nó xuất phát từ việc xem lệnh gọi có thất bại hay không bằng cách không tìm exe. – mjv

+0

Cảm ơn vì * "trong trường hợp phần mở rộng không được cung cấp một cách rõ ràng trên dòng lệnh "* note, đó là lý do tại sao lệnh' python3.5' không thể làm việc với PATH trên các cửa sổ ... – dedek

2

I tin rằng nó đi qua% PATHEXT% và cố gắng mỗi người

7

tóm tắt từ liên kết Microsoft Technet cung cấp bởi MJV:

Windows sẽ bước qua các thư mục trong PATH từ trái sang phải (thứ tự danh sách thông thường). Trong mỗi điều này, nó cố gắng định vị một tệp với mỗi PATHEXT cũng từ trái sang phải, trước khi tiếp tục mục nhập PATH tiếp theo. Tệp đầu tiên mà nó tìm thấy sẽ thắng.

Vì vậy, trong trường hợp của bạn, bạn cần thay đổi PATHEXT để .BAT xuất hiện trước .EXE (hoặc nó sẽ luôn tìm .exe trước và không phải .bat bạn có thể muốn ghi đè lên nó nhất, nếu trong cùng một thư mục) và cũng đặt đường dẫn của 'override' gvim.bat của bạn sớm hơn (sớm nhất?) trong danh sách PATH hơn bất cứ nơi nào nó có thể tìm thấy gvim. * (vì nó cố gắng mỗi PATHEXT trong mỗi trước khi đi xuống PATH)

Các vấn đề liên quan