2010-01-22 28 views

Trả lời

37

Nguyên, một file .COM là một blob đen của 8086 mã (có nghĩa là, 16-bit x86). Nó có nghĩa là để được nạp tại một địa chỉ cố định, và bộ tải sẽ nhảy thẳng đến byte đầu tiên của địa chỉ của nó. Nó cũng bị giới hạn về kích thước.

Tệp .EXE có nhiều thông tin tiêu đề hơn. Vì vậy, nó đã yêu cầu cấu trúc cho những thứ như liên kết động, nơi mã từ một DLL có thể được vá vào không gian bộ nhớ của .EXE tại thời gian tải .. Nó ban đầu xuất phát từ DOS, nhưng ngày nay nó được sử dụng trong Windows.

Tuy nhiên, DOS và Windows cuối cùng đã đi đến một mô hình mà phần mở rộng tệp trong một số .COM.EXE không có ý nghĩa gì cả. Trình tải chương trình đầu tiên kiểm tra hai byte đầu tiên của tệp. Nếu nó xảy ra là chuỗi MZ (legend has it this stands for the initials of an early Microsoft employee), nó sẽ xử lý nó như là một EXE, nếu không nó sẽ tải nó như thể nó là một tập tin COM. Vì MZ không ánh xạ tới lệnh x86 hợp lý để bắt đầu một chương trình, chúng có thể thoát khỏi điều này. Hiệu ứng ròng: Trong một số phiên bản của DOS/Windows, một .EXE có thể được đặt tên với .COM và ngược lại. Ví dụ, trong nhiều phiên bản của DOS/Windows, COMMAND.COM nổi tiếng thực sự là một EXE.

Tôi không chắc chắn bao nhiêu đoạn trước áp dụng cho các phiên bản dựa trên NT của Windows. Tôi đã hình dung ngay bây giờ họ đã từ bỏ tất cả các công cụ .COM.

Cuối cùng, tệp .BAT là danh sách các lệnh sẽ được thực hiện như thể bạn đã nhập chúng tại dấu nhắc lệnh của mình. Tuy nhiên những ngày này hầu hết mọi người đặt tên chúng là .CMD.

+7

** MZ ** là viết tắt của ** MORIN Zobowski ** - Ông đã thiết kế và triển khai các phiên bản đầu tiên của các tiêu đề EXE. :) –

+0

Bạn có thể đổi tên bất kỳ tệp .exe thành .com và nó sẽ chạy tốt - nó không tạo ra sự khác biệt nào. –

+0

Chỉ vì nó chạy nó không có nghĩa là nó hoạt động! EXE và COM giống như 2 mẫu xe hoàn toàn khác với cùng một sản phẩm. –

0

Tệp dơi (ch) là tập lệnh được thực thi bởi người phiên dịch lệnh.

Tệp exe được biên dịch mã nhị phân để được thực thi trực tiếp trên cpu.

Tệp com là một di tích từ quá khứ để tạo một exe nhỏ.

1

.bat là một tệp lô. Nó được giải thích.

.exe là tệp chương trình thực thi thường xuyên.

Một tệp .com, ít nhất là đối với MS-DOS, có nhiều siêu dữ liệu bị thiếu và được tải vào một khoảng trống cụ thể trong bộ nhớ chính. Nó nhỏ hơn .exe

2

Tôi cho rằng bạn có ý nghĩa với Windows?

"a.bat" được coi là tệp lô, tệp Windows/DOS tương đương với tệp tập lệnh.

"a.com" và "a.exe" được cho là tương đương với những ngày này. Tuy nhiên, trở lại trong Windows 3.x ngày, tệp "com" là tệp thực thi DOS, trong đó tệp "exe" là tệp thực thi di động hoặc tệp thực thi dựa trên Windows. Đây là một bản ghi nhớ những ngày này, vì các tệp có định dạng "www.example.com" có thể tồn tại trên ổ cứng của bạn và nhiều người nhầm lẫn một tệp như vậy cho một liên kết web. Thậm chí tệ hơn, Windows thường cố gắng thực thi các tệp "com" trước khi các tệp "exe".

+0

Thứ tự ưu tiên trong việc định vị tệp thực thi (http://support.microsoft.com/kb/35284) cũng hữu ích đôi khi khi bạn ở trong liên kết (hiếm khi xảy ra). – Liao

+3

.exe tệp tồn tại trước khi Windows xuất hiện. –

+2

Thực ra, các Tệp thi hành Di động tồn tại trước Windows. Xem Wikipedia. –

0

.BAT - Batch File: danh sách các lệnh (cơ bản là một tập tin văn bản với dòng lệnh lệnh)

.COM - DOS thực thi nạp vào một khối cố định bộ nhớ (xuất phát lại từ trước multi-tasking)

.EXE - thực thi tập tin - ứng dụng tiêu chuẩn trên nền tảng Windows

-2

.bat hiệu ứng tệp trực tiếp trên hiệu suất của CPU. Trong khi, tệp .exe sẽ được biên dịch bởi trình thông dịch và sau đó được thực hiện trên CPU.

1

Trong khi các tệp EXE và BAT thường phục vụ mục đích tương tự, chúng sử dụng các định dạng tệp hoàn toàn khác nhau. Cả hai loại tệp đều có thể được sử dụng để tạo nội dung thực thi trong Windows, nhưng các tệp BAT bị giới hạn trong các lệnh mà chúng có thể thực hiện. Vì các tệp BAT chứa văn bản có thể đọc được, chúng có thể dễ dàng được chỉnh sửa và do đó thường được sử dụng cho các tác vụ kịch bản tùy chỉnh. Các tệp EXE, mặt khác, chứa dữ liệu nhị phân phức tạp được xây dựng bằng trình biên dịch. Vì các tệp EXE hỗ trợ các lệnh phức tạp hơn các tệp BAT, hầu hết các ứng dụng Windows được lưu ở định dạng EXE.

Tôi cũng đang tìm kiếm cùng một truy vấn và tìm thấy nội dung nào đó đã dán ở đây.

Vui lòng tham khảo liên kết dưới đây, bạn sẽ tìm thấy nó hữu ích, nó hoàn toàn trả lời câu hỏi của bạn:
Difference between .BAT and .EXE

0

Trên thực tế, .com và .exe đều các file thực thi nhị phân, trong khi .bat về cơ bản là một tập tin thực thi . Bây giờ giả sử bạn có nhiều tệp có cùng tên nhưng có các đuôi mở rộng khác nhau.

Ví dụ: a.com, a.exe và nếu bạn đang chạy qua tệp nhắc lệnh a. Đầu tiên nó sẽ thực hiện a.com (chỉ khi nó tồn tại), nếu không nó sẽ chạy a.exe. Hoặc giả sử a.exe cũng không có ở đó thì sẽ tìm kiếm thực thi a.bat.

+0

Xem thêm * [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)] (http://stackoverflow.com/questions/605101/order-in-which- command-prompt-executes-files-với-cùng-tên-a-bat-vs-a-cmd/605139 # 605139) * –

1
  • Tệp .BAT (viết tắt cho "batch") là một tệp văn bản thuần túy có chứa một chuỗi lệnh .
  • Tệp .EXE (viết tắt của "có thể thực thi") là tệp nhị phân có chứa mã nhị phân thực thi phức tạp hơn .
  • Tệp .COM là một tệp thực thi DOS và ngày nay giống như tệp .EXE.
Các vấn đề liên quan