Jusqu'à présent, je n'ai jamais pensé (et jamais observé) cela cmd
et ce command
sont deux choses différentes. Eh bien, le sont-ils?
Jetez un oeil à cette photo:
En fait, j'ouvre généralement à cmd
partir de la boîte de dialogue Exécuter chaque fois que je veux en ligne de commande (pour Git / VIM). J'ai donc personnalisé la position d'affichage, la police, la couleur, etc. Aujourd'hui, pour changer, j'ai tapé command
Exécuter au lieu de cmd
et j'ai 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
- La différence entre eux.
- Pourquoi Microsoft les a séparés (Unix et Linux n'a qu'un seul shell par défaut, Bash).
windows
command-line
shell
ms-dos
Surya
la source
la source
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.Réponses:
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é parcommand
.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:dir
,copy
, etc.).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 quecmd.exe
qui est en fait un programme Windows (et a l'en-tête Windows PE, contrairement à celuicommand.com
qui a l'en-tête DOS MZ).command
a les mêmes objectifs que lecmd
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.la source
Why would you say this? Are non-command line non-TUI DOS apps 'unnatural' in some way?
Sorte de. Dans 9x, ils allaient bien, mais les applications graphiques (par exemple, les jeux) ne fonctionnent plus correctement, voire pas du tout dans XP +, de sorte que la grande majorité des applications DOS exécutées sur Windows (nativement) de nos jours sont en effet des outils de ligne de commande au lieu de applications graphiques complètes. Sur les machines 64 bits, les applications 16 bits ne s'exécutent pas du tout en mode natif, mais même les applications 32 bits sont généralement des applications de console, d'autant plus que Vista a supprimé la prise en charge des consoles plein écran .également...
C'est de cet article Wikipedia informatif .
Il est fait mention de la façon dont les anciennes commandes command.com ont été intégrées aux nouvelles fonctionnalités cmd.exe ... par exemple ...
Alors, n'hésitez pas à lire.
la source
command.com
est le shell DOS, fourni pour des raisons de compatibilité.cmd.exe
est un programme natif Win32, hérité d'OS / 2.la source