Hasta ahora, nunca pensé (y nunca observé) eso cmdy commandson dos cosas diferentes. Bueno, son ellos?
Echa un vistazo a esta foto:

En realidad, generalmente abro cmddesde el cuadro de diálogo Ejecutar cuando quiero en la línea de comandos (para Git / VIM). Entonces, personalicé la posición de visualización, la fuente, el color, etc. Hoy, para variar, escribí commandEjecutar en lugar de cmdy encontré que hay algo nuevo en mi ventana. Tiene "DOS" en su ventana.
Entonces, obviamente debería haber una diferencia entre cmdy command. Me gustaría saber
- La diferencia entre ellos.
- Por qué Microsoft los separó (Unix y Linux solo tiene un shell por defecto, Bash).
windows
command-line
shell
ms-dos
Surya
fuente
fuente

command.comes la versión heredada de 16 bits (solo disponible en instalaciones de 32 bits). No existe en mi versión de 64 bits de Windows 7.Respuestas:
TL; DR
Cuando ejecuta un programa de consola de 32 bits, lo ejecuta
cmd; cuando ejecuta un programa de consola de 16 bits, lo ejecutacommand.Detalles
Windows XP incluye un subsistema para admitir aplicaciones antiguas de 16 bits.
Las aplicaciones antiguas de 16 bits están disponibles como programas DOS y Windows. Los programas de DOS por su naturaleza son aplicaciones de consola y se ejecutan en lo que parece el símbolo del sistema. Sin embargo, las aplicaciones de consola de Windows de 32 bits son muy similares y tienen el mismo aspecto.
El procesador / intérprete de comandos
cmdtiene varios propósitos:dir,copy, etc.).batarchivos compatibles con DOS y.cmdarchivos compatibles con NT )Cuando ejecuta un antiguo programa de consola de 16 bits, lo ejecuta NTVDM (máquina virtual de Windows NT de DOS). Proporciona un sistema DOS emulado (de ahí la máquina virtual DOS ) que es similar a ejecutar un software de máquina virtual dedicado, excepto que la capa de emulación es más simple.
commandes una versión de 16 bits del intérprete de comandos que está mucho más cerca del DOS real que elcmd.exeque es en realidad un programa de Windows (y tiene el encabezado de Windows PE, a diferencia delcommand.comque tiene el encabezado de DOS MZ).commandtiene los mismos propósitos,cmdexcepto que solo admite programas de 16 bits. Además, no admite.cmdarchivos y tiene menos comandos integrados y su sintaxis es más limitada (cmdes un intérprete de línea de comandos más nuevo, más moderno y más avanzado, similar a 4DOS ).Sin embargo, es compatible con programas gráficos de DOS (como juegos antiguos), pero el éxito de su ejecución depende de los controladores de la tarjeta de video y de la naturaleza del programa. Existen numerosos sitios que ofrecen varios trucos para que los juegos de DOS se ejecuten en Windows (aunque el éxito en Vista y versiones posteriores suele ser más limitado que en XP).
Cabe señalar que las versiones de Windows de 64 bits han dejado de admitir completamente los programas de 16 bits, por lo que no se incluyen
commanden absoluto, por lo que ni los programas de DOS ni Windows de 16 bits se ejecutarán y en su lugar arrojarán un mensaje de error (engañoso) .Notas técnicas
command.comtiene una.comextensión para la compatibilidad con los programas de DOS, pero como la mayoría de las otras versiones de Windows de comandos externos de DOS, internamente, en realidad es un.exearchivo de Windows PE . Esto proporciona la observación interesante de que si bien Windows usa la extensión como un indicador de cómo manejar la mayoría de los tipos de archivos, para los ejecutables, ignora la extensión y mira su contenido (de lo contrario.exe, no funcionaría si se tratara como a.com). Esta pregunta se relaciona con este efecto.fuente
Why would you say this? Are non-command line non-TUI DOS apps 'unnatural' in some way?Más o menos. En 9x, estaban bien, pero las aplicaciones gráficas (p. Ej., Juegos) ya no funcionan correctamente en absoluto en XP +, por lo que la gran mayoría de las aplicaciones de DOS que se ejecutan en Windows (de forma nativa) actualmente son herramientas de línea de comandos en lugar de Aplicaciones gráficas completas. En las máquinas de 64 bits, las aplicaciones de 16 bits no se ejecutan de forma nativa en absoluto, pero incluso aplicaciones de 32 bits están generalmente consola aplicaciones, especialmente desde Vista abandonado el soporte para pantalla completa consolas .además...
Eso es de este artículo informativo de Wikipedia.
Se menciona cómo los comandos command.com más antiguos se han incorporado a la funcionalidad cmd.exe más nueva ... por ejemplo ...
Entonces, siéntase libre de leer.
fuente
command.comes el shell de DOS, proporcionado por compatibilidad.cmd.exees un programa nativo de Win32, heredado de OS / 2.fuente