Jusqu'à présent, je n'ai jamais pensé (et jamais observé) que cmd
et command
sont deux choses différentes. Eh bien, sont-ils?
Regardez cette photo:
En fait, j'ouvre habituellement cmd
à partir de la boîte de dialogue Exécuter chaque fois que je souhaite utiliser la ligne de commande (pour Git/VIM). J'ai donc personnalisé la position d'affichage, la police, la couleur, etc. Aujourd'hui, pour la changer, j'ai saisi command
dans Exécuter au lieu de cmd
et constaté qu'il y avait quelque chose de nouveau sur ma fenêtre. Il a "DOS" dans sa fenêtre.
Donc, évidemment, il devrait y avoir une différence entre cmd
et command
. J'aimerais savoir
Lorsque vous exécutez un programme de console 32 bits, il est exécuté par cmd
; Lorsque vous exécutez un programme console 16 bits, il est exécuté par command
.
Windows XP inclut un sous-système prenant en charge les applications 16 bits plus anciennes.
Les anciennes applications 16 bits sont disponibles en tant que programmes DOS et Windows. Les programmes DOS sont par nature 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.
La commande processeur/interprète cmd
a plusieurs objectifs:
dir
, copy
, etc.).bat
compatibles DOS et fichiers .cmd
compatibles NT)Lorsque vous exécutez un ancien programme de console 16 bits, il est exécuté par le NTVDM (machine virtuelle Windows NT). Il fournit un système DOS émulé (d'où la machine DOS virtuelle ) similaire à l'exécution d'un logiciel de machine virtuelle dédié, à la différence que la couche d'émulation est plus simple. command
est une version 16 bits de l'interpréteur de commandes beaucoup plus proche du DOS réel que cmd.exe
qui est en fait un programme Windows (et possède l'en-tête Windows PE, contrairement à command.com
qui possède l'en-tête DOS MZ).
command
a les mêmes objectifs que cmd
sauf qu'il ne prend en charge que les programmes 16 bits. En outre, il ne prend pas en charge les fichiers .cmd
et comporte moins de commandes intégrées et sa syntaxe est plus limitée (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 DOS graphiques (comme les anciens jeux), mais le succès de leur exécution dépend des pilotes de carte vidéo et de la nature du programme. Il existe de nombreux sites proposant diverses astuces pour que les jeux DOS s'exécutent sous Windows (bien que le succès sur Vista et versions ultérieures 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 n'incluent donc pas du tout command
. Par conséquent, ni les programmes DOS ni Windows 16 bits ne seront exécutés et lanceront plutôt un message (trompeur) message d'erreur .
Notes techniques
command.com
possède une extension .com
pour la compatibilité ascendante avec les programmes DOS, mais comme la plupart des autres versions Windows de commandes DOS externes, il s’agit en fait d’un fichier Windows PE .exe
. Cela donne l’observation intéressante que bien que Windows utilise l’extension comme indicateur de la façon de traiter la plupart des types de 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.
Contrairement à COMMAND.COM, qui est un programme DOS, cmd.exe est une application Windows native s'exécutant normalement sur la console Win32. Cela lui permet de tirer parti des fonctionnalités disponibles pour les programmes natifs de la plate-forme qui seraient autrement indisponibles pour les programmes DOS.
également...
Les versions OS/2 et Windows NT de cmd.exe ont des messages d'erreur plus détaillés que la couverture "Commande incorrecte ou nom de fichier" (dans le cas de commandes incorrectes) de command.com.
Cela provient de cet article Wikipedia informatif.
Il est fait mention de la façon dont les anciennes commandes command.com ont été intégrées dans la nouvelle fonctionnalité cmd.exe ... par exemple ...
la fonctionnalité de deltree (command.com) a été convertie en rd (cmd.exe) sous la forme du paramètre/s
Alors, n'hésitez pas à lire.
command.com
est le shell DOS fourni pour la compatibilité.
cmd.exe
est un programme Win32 natif, hérité de OS/2.