TL; DR
Khi bạn chạy chương trình điều khiển 32 bit, nó được thực thi bởi cmd
; khi bạn chạy chương trình console 16 bit, nó được thực thi bởi command
.
Chi tiết
Windows XP bao gồm một hệ thống con để hỗ trợ các ứng dụng 16 bit cũ hơn.
Các ứng dụng 16 bit cũ có sẵn ở cả hai chương trình DOS và Windows. Các chương trình DOS về bản chất là các ứng dụng giao diện điều khiển và chạy trong giao diện giống như dấu nhắc lệnh. Tuy nhiên, các ứng dụng bảng điều khiển Windows 32 bit rất giống nhau và trông giống nhau.
Bộ xử lý lệnh / trình thông dịch cmd
có một số mục đích:
- Để thực thi văn bản 32-bit chương trình bảng điều khiển Windows
- Để cung cấp và xử lý các chức năng dòng lệnh khác nhau (
dir
, copy
, vv)
- Giải thích và thực thi các tệp bó (
.bat
tệp tương thích DOS và .cmd
tệp tương thích NT )
Khi bạn chạy một chương trình giao diện điều khiển 16 bit cũ, nó được thực hiện bởi NTVDM (Windows NT Virtual DOS Machine). Nó cung cấp một hệ thống DOS giả lập (do đó là máy DOS ảo ) tương tự như chạy một phần mềm máy ảo chuyên dụng, ngoại trừ lớp mô phỏng đơn giản hơn. command
là phiên bản 16 bit của trình thông dịch lệnh gần với DOS thực tế hơn cmd.exe
là chương trình Windows thực sự (và có tiêu đề Windows PE, không giống như command.com
tiêu đề DOS MZ).
command
có cùng mục đích cmd
ngoại trừ việc nó chỉ hỗ trợ các chương trình 16 bit. Ngoài ra, nó không hỗ trợ .cmd
các tệp và có ít lệnh tích hợp hơn và bị hạn chế hơn trong cú pháp của nó ( cmd
là trình thông dịch dòng lệnh mới hơn, hiện đại hơn, tiên tiến hơn, tương tự như 4DOS ).
Tuy nhiên, nó hỗ trợ các chương trình đồ họa DOS (như các trò chơi cũ), nhưng sự thành công của việc chạy chúng phụ thuộc vào trình điều khiển card màn hình và bản chất của chương trình. Có rất nhiều trang web cung cấp nhiều thủ thuật khác nhau để đưa các trò chơi DOS chạy trên Windows (mặc dù thành công trên Vista trở lên thường bị hạn chế hơn so với trên XP).
Cần lưu ý rằng các phiên bản Windows 64 bit đã hoàn toàn không hỗ trợ các chương trình 16 bit và do đó không bao gồm command
, vì vậy cả chương trình DOS và Windows 16 bit sẽ không chạy và thay vào đó sẽ đưa ra thông báo lỗi (gây hiểu lầm) .
Ghi chú kỹ thuật
command.com
có một .com
phần mở rộng để tương thích ngược với các chương trình DOS, nhưng giống như hầu hết các phiên bản Windows khác của các lệnh DOS bên ngoài, bên trong, nó thực sự là một .exe
tệp Windows PE . Điều này cung cấp một quan sát thú vị rằng mặc dù Windows sử dụng tiện ích mở rộng như một chỉ báo về cách xử lý hầu hết các loại tệp, đối với các loại thực thi, nó bỏ qua tiện ích mở rộng và xem xét nội dung của nó (nếu không thì .exe
sẽ không hoạt động nếu được coi là a .com
). Câu hỏi này liên quan đến hiệu ứng này.
command.com
là phiên bản 16 bit cũ (chỉ có sẵn khi cài đặt 32 bit). Nó không tồn tại trên phiên bản 64 bit của Windows 7.