TL; DR
Ketika Anda menjalankan program konsol 32-bit, itu dijalankan oleh cmd; ketika Anda menjalankan program konsol 16-bit, itu dijalankan oleh command.
Detail
Windows XP mencakup subsistem untuk mendukung aplikasi 16-bit yang lebih lama.
Aplikasi 16-bit lama tersedia sebagai program DOS dan Windows. Program DOS pada dasarnya adalah aplikasi konsol dan dijalankan dalam apa yang tampak seperti command-prompt. Namun aplikasi konsol Windows 32-bit sangat mirip dan terlihat sama.
Pemroses perintah / juru bahasa cmdmemiliki beberapa tujuan:
- Untuk menjalankan program konsol Windows teks 32-bit
- Untuk memberikan dan menangani berbagai fungsi command-line (
dir, copy, dll)
- Menafsirkan dan mengeksekusi file batch (
.batfile yang kompatibel dengan DOS dan .cmdfile yang kompatibel dengan NT )
Ketika Anda menjalankan program konsol 16-bit lama, itu dijalankan oleh NTVDM (Windows NT Virtual DOS Machine). Ini menyediakan sistem DOS yang ditiru (karenanya mesin DOS virtual ) yang mirip dengan menjalankan perangkat lunak mesin virtual khusus, kecuali lapisan emulasi lebih sederhana. commandadalah versi 16-bit dari command-interpreter yang jauh lebih dekat dengan DOS sebenarnya daripada cmd.exeyang sebenarnya merupakan program Windows (dan memiliki header Windows PE, tidak seperti command.comyang memiliki header DOS MZ).
commandmemiliki tujuan yang sama seperti cmdkecuali bahwa itu hanya mendukung program 16-bit. Selain itu, ia tidak mendukung .cmdfile dan memiliki lebih sedikit perintah bawaan dan lebih terbatas dalam sintaksisnya ( cmdadalah penerjemah baris perintah yang lebih baru, lebih modern, lebih maju, mirip dengan 4DOS ).
Namun, ini mendukung program DOS grafis (seperti game lama), tetapi keberhasilan menjalankannya tergantung pada driver kartu video dan sifat program. Ada banyak situs yang menawarkan berbagai trik untuk menjalankan game DOS di Windows (walaupun keberhasilan di Vista dan yang lebih tinggi biasanya lebih terbatas daripada di XP).
Perlu dicatat bahwa Windows versi 64-bit telah sepenuhnya menjatuhkan dukungan dari program 16-bit, dan karenanya tidak termasuk commandsama sekali, sehingga baik program DOS maupun Windows 16-bit tidak akan berjalan dan sebagai gantinya akan mengirimkan pesan kesalahan (menyesatkan) .
Catatan teknis
command.commemiliki .comekstensi untuk kompatibilitas mundur dengan program DOS, tetapi seperti kebanyakan versi Windows lainnya dari perintah DOS eksternal, secara internal, itu sebenarnya adalah .exefile Windows PE . Ini memberikan pengamatan menarik bahwa sementara Windows menggunakan ekstensi sebagai indikator bagaimana menangani sebagian besar tipe file, untuk yang dapat dieksekusi, ekstensi tersebut mengabaikan ekstensi dan melihat isinya (jika .exetidak, tidak akan berfungsi jika diperlakukan sebagai a .com). Pertanyaan ini berkaitan dengan efek ini.
command.comadalah versi 16bit lama (hanya tersedia pada instalasi 32bit). Itu tidak ada pada versi 64bit saya dari Windows 7.