2009-03-03 8 views
14

Thứ tự lệnh trong Windows nhắc thực thi các tệp có cùng tên, nhưng các phần mở rộng khác nhau là gì?Thứ tự trong đó dấu nhắc lệnh thực thi các tệp có cùng tên (a.bat vs a.cmd vs a.exe)

Ví dụ: tôi có một loạt tệp thi hành (something.cmd, something.bat, something.exe). Điều nào trong số này sẽ được thực hiện khi tôi gõ "cái gì đó" vào một dấu nhắc lệnh (được cho là họ đang trên đường dẫn, vv)? Nếu tệp đó không tồn tại thì tệp nào sẽ được thực thi?

Có tham chiếu mô tả điều này không?

+0

Không có tham chiếu nhưng bạn có thể tự mình thử. Và, biết MS, nó có thể khác nhau trên các phiên bản hệ điều hành. :-) – jro

Trả lời

22

OK, tôi đã thực hiện một số thử nghiệm nhanh dựa trên một số tìm kiếm khác mà tôi đã thực hiện.

Ý chính là thứ tự của các lệnh phụ thuộc vào thứ tự các phần mở rộng được lưu trữ trong biến môi trường PATHEXT. Vì vậy, ban đầu tôi đã:

PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.RB;.RBW 

và cho ví dụ trên thứ tự mà nó sẽ chạy nó là:

something.exe 
something.bat 
something.cmd 

Thay đổi thứ tự mà chúng được định nghĩa trong biến môi trường PATHEXT đã thực sự thay đổi thứ tự mà chúng được thực hiện.

+5

Nếu biến 'PATHEXT' bị xóa, thứ tự giống như trong các ngày MS-DOS cũ: COM, EXE, BAT và giờ là CMD. – Aacini

+0

Dường như câu trả lời này và của tôi nên được kết hợp sau đó, vì chúng là hai mặt của đồng xu. –

+0

@Aacini Bạn có nghĩa là trong Windows 8 hoặc Windows 8.1? Bởi vì nó vẫn còn trong Windows 7. – Daemin