TL; DR
Lorsque vous exécutez un programme de console 32 bits, il est exécuté par cmd
; lorsque vous exécutez un programme de console 16 bits, il est exécuté par command
.
Détails
Windows XP inclut un sous-système pour prendre en charge les anciennes applications 16 bits.
Les anciennes applications 16 bits sont disponibles sous forme de programmes DOS et Windows. Les programmes DOS, de par leur nature, sont des applications console et s'exécutent dans ce qui ressemble à l'invite de commande. Cependant, les applications de console Windows 32 bits sont très similaires et se ressemblent.
Le processeur / interprète de commande cmd
a plusieurs objectifs:
- Pour exécuter un programme de console Windows de texte 32 bits
- Fournir et gérer les différentes fonctions de ligne de commande (
dir
, copy
, etc.)
- Interpréter et exécuter des fichiers batch (
.bat
fichiers compatibles DOS et .cmd
fichiers compatibles NT )
Lorsque vous exécutez un ancien programme de console 16 bits, il est exécuté par le NTVDM (Windows DOS Virtual DOS Machine). Il fournit un système DOS émulé (d'où la machine DOS virtuelle ) qui est similaire à l'exécution d'un logiciel de machine virtuelle dédié, sauf que la couche d'émulation est plus simple. command
est une version 16 bits de l'interpréteur de commandes qui est beaucoup plus proche du DOS réel que cmd.exe
qui est en fait un programme Windows (et a l'en-tête Windows PE, contrairement à celui command.com
qui a l'en-tête DOS MZ).
command
a les mêmes objectifs que le cmd
fait qu'il ne prend en charge que les programmes 16 bits. De plus, il ne prend pas en charge les .cmd
fichiers et a moins de commandes intégrées et est plus limité dans sa syntaxe ( cmd
est un interpréteur de ligne de commande plus récent, plus moderne et plus avancé, similaire à 4DOS ).
Cependant, il prend en charge les programmes graphiques DOS (comme les anciens jeux), mais le succès de leur exécution dépend des pilotes de la carte vidéo et de la nature du programme. Il existe de nombreux sites qui offrent diverses astuces pour exécuter les jeux DOS sur Windows (bien que le succès sur Vista et plus soit généralement plus limité que sur XP).
Il convient de noter que les versions 64 bits de Windows ont complètement abandonné la prise en charge des programmes 16 bits, et ne les incluent donc pas command
du tout, donc ni les programmes DOS ni Windows 16 bits ne s'exécuteront et, à la place, lanceront un message d'erreur (trompeur) .
Notes techniques
command.com
a une .com
extension pour la compatibilité descendante avec les programmes DOS, mais comme la plupart des autres versions Windows des commandes DOS externes, en interne, il s'agit en fait d'un .exe
fichier Windows PE . Cela fournit l'observation intéressante que, bien que Windows utilise l'extension comme indicateur de la façon de gérer la plupart des types de fichiers, pour les fichiers exécutables, il ignore l'extension et examine son contenu (sinon un .exe
ne fonctionnerait pas s'il était traité comme un .com
). Cette question concerne cet effet.
command.com
c'est la version 16 bits héritée (uniquement disponible sur les installations 32 bits). Il n'existe pas sur ma version 64 bits de Windows 7.