Trên Windows, phần mở rộng tên tệp nào biểu thị một tệp thực thi?
Biểu thị cái gì?
Tôi biết rằng câu hỏi có thể hơi khó hiểu vào lúc này, nhưng câu hỏi quan trọng. Khi tôi giải thích tại sao nó quan trọng, câu hỏi sẽ trở nên rõ ràng hơn.
Mặc dù câu trả lời của Ken White về biến PATHEXT (trong "môi trường" của dấu nhắc lệnh) là một câu trả lời hay và ngắn, và câu trả lời đó có thể hoạt động tốt cho bạn, nhưng câu trả lời chưa đầy đủ. Lý do không đầy đủ là câu trả lời đúng là khác nhau dựa trên những gì bạn đang cố gắng làm.
Ví dụ: bạn có thể thử:
- Chạy chương trình từ "dấu nhắc lệnh truyền thống" ("CMD"), bằng cách nhập tên tệp đầy đủ của nó
- Chạy chương trình từ "dấu nhắc lệnh truyền thống" ("CMD"), bằng cách nhập tên tệp cơ sở, nhưng bỏ phần mở rộng của nó
- Sử dụng lệnh "bắt đầu" được tích hợp trong "dấu nhắc lệnh truyền thống" ("CMD")
- Chạy một chương trình từ PowerShell
- Chạy một chương trình từ mục menu "Chạy", được tìm thấy trên menu bắt đầu
- Chạy chương trình từ Explorer, bằng cách bấm đúp vào biểu tượng liên quan đến tệp kết thúc bằng phần mở rộng
- Yêu cầu Microsoft Internet Explorer mở tệp đã tải xuống
- Chạy một chương trình bằng cách sử dụng một chức năng từ Microsoft Windows API. (Đây là điều mà người dùng cuối thường không làm, nhưng các lập trình viên máy tính có thể làm điều này và vì vậy thông tin có liên quan đến họ.)
Một số phương pháp chạy chương trình này có thể sử dụng các phương pháp khác nhau để xác định phần mở rộng tên tệp nào có thể được hỗ trợ. Cụ thể, sử dụng CMD có thể khác với menu Run.
Chẳng hạn, blog khó hiểu của Wes: Tùy chỉnh Windows Run Command ... lưu ý các vị trí khác nhau đang được kiểm tra, bao gồm khóa đăng ký.
Câu trả lời cũng có thể phụ thuộc vào phiên bản Microsoft Windows nào đang được sử dụng. Trong Windows 10, tôi chỉ cần gõ tên của tệp zip tại dấu nhắc lệnh và nó đã mở Windows Explorer. Tôi dường như nhớ rằng không hoạt động trong Windows XP (mặc dù trong Windows XP, tôi có thể gõ "start filename.zip" và có cùng loại hiệu ứng). Vì vậy, hoặc bộ nhớ của tôi bị lỗi hoặc Microsoft đã cố gắng cải thiện các phiên bản Windows mới hơn. (Hy vọng, đối với tôi, cái sau.)
Trong dấu nhắc lệnh truyền thống của Windows 10 (chạy "CMD"), khi tôi đi đến vị trí (sử dụng lệnh "CD") của tệp zip và nhập "filename.zip", thì tệp sẽ mở. Khi tôi đến vị trí đó và nhập "tên tệp" (bỏ phần mở rộng tệp ".zip"), thì Windows không tìm thấy tệp. Tuy nhiên nếu tôi chạy " ECHO %PATHEXT%
" và sau đó " SET PATHEXT=%PATHEXT%;.ZIP
" (và sau đó " ECHO %PATHEXT%
" để đảm bảo tôi có hiệu ứng mong muốn), thì tôi có thể nhập "tên tệp" và dấu nhắc lệnh sẽ tìm thấy tệp .ZIP. Vì vậy, đó là tác động của biến% PATHEXT%.
Bạn có thể thấy một danh sách các phần mở rộng khác bằng cách chạy ASSOC
lệnh. Ví dụ: chạy lệnh đó sẽ hiển thị nhiều dòng đầu ra bao gồm cả dòng sau (trên hệ thống của tôi) - " .zip=CompressedFolder
". Sau đó, tôi có thể thấy những gì chạy bằng cách gõ " FTYPE | FIND /I "CompressedFolder"
". (Đó là có nghĩa là cho dòng lệnh truyền thống. PowerShell sẽ không giống như những dấu ngoặc kép unescaped.) (Nếu bạn chỉ cần gõ " FTYPE
" mà không có phần còn lại của dòng lệnh, bạn sẽ thấy kết quả khá hơn một chút thông tin về các phần mở rộng khác.)
Nếu tôi gõ " ASSOC | FIND /C "."
", trên máy tính Windows 10 của mình, thì tôi thấy rằng tôi có 339 dòng đầu ra khi tôi kiểm tra các liên kết tệp theo cách đó.
MS KB 162059 là tất cả về việc điều chỉnh cách Internet Explorer mở tài liệu Office.
Vì vậy, yêu cầu danh sách thực thi mặc định là quá mơ hồ. Các thành phần khác nhau của Microsoft Windows có thể sử dụng các tài nguyên khác nhau, vì vậy câu hỏi cần phải cụ thể hơn để có câu trả lời chính xác.
Câu hỏi đã đề cập bằng cách sử dụng Explorer để nhấp đúp vào biểu tượng. Để xem danh sách các tệp thực thi được sử dụng bởi điều đó, tôi tin rằng bạn sẽ muốn kiểm tra sổ đăng ký. Bạn có thể chạy nó từ một dấu nhắc lệnh:
reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts
(Tôi sẽ không liệt kê chúng ở đây. Có 286 trong số chúng trên máy tính Windows 10 của tôi.)
Đó là danh sách các phần mở rộng. Để xem thêm thông tin, bao gồm chi tiết về các tiện ích mở rộng:
reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts /s
Vì vậy, như bạn có thể thấy bây giờ, câu hỏi tưởng chừng như vô hại này thực sự có thể là một chủ đề khá phức tạp. Tôi tin rằng tôi đã đưa ra trường hợp của mình về lý do tại sao một câu hỏi phải khá cụ thể để có thể nhận được câu trả lời hoàn chỉnh giải quyết hoàn toàn cách một thành phần duy nhất của Windows có thể xác định các phần mở rộng tên tệp. Trong một vỏ hạt, không chỉ có một câu trả lời duy nhất cho Windows, vì Windows có nhiều thành phần hoạt động theo nhiều cách khác nhau. Hy vọng rằng tôi đã bắt đầu cho thấy điều đó và chỉ ra một số tài nguyên bổ sung hiển thị thông tin liên quan.