J'ai argumenté avec mon ami que l' invite de commande n'est qu'une version graphique de MS-DOS qui fonctionne dans l'environnement de formulaires Windows. Il est totalement en désaccord avec moi.
Qui a raison?
windows
command-line
ms-dos
user978733
la source
la source
cmd.exe
est une bête complètement différente de MS-DOS.Réponses:
C'était vrai une fois, mais ce n'est plus le cas.
À partir de l' interface de ligne de commande MS-DOS # Windows - Wikipedia :
Donc non, dans chaque Windows de la famille NT (par exemple, XP, Vista, 7, 8), l'invite de commande et MS-DOS sont visuellement similaires, mais assez différents.
la source
cmd.exe
aurait étécommand.com
, une assez petite partie de MSDOS.Ce sont des choses différentes - l' invite de commande n'est pas MS-DOS - mais en ce qui concerne l'utilisateur, elles peuvent être la même chose que les mêmes choses.
Cela dépend donc de votre point de vue. D'un point de vue technique, votre ami a raison, mais du point de vue de l'utilisateur, vous avez raison (en quelque sorte, car il y a des différences qu'un expert remarquerait).
la source
Non.
(À moins que votre définition de l'égalité ne s'étende pas au-delà » C'est une interface texte et je peux y exécuter des programmes. « )
Ce qui est exécuté lorsque vous cliquez sur Invite de commandes dans le menu Démarrer est le processeur de commandes Windows, alias
cmd.exe
. Ses commandes intégrées et sa syntaxe de script (y compris de nombreuses bizarreries) sont basées sur l'anciencommand.com
de CP / M et plus tard MS-DOS, mais en dehors de cela, ce sont des choses complètement distinctes. Ilcommand.com
s'agit également d'un programme 16 bits et d'cmd.exe
une application de console Windows native.Les choses étaient différentes dans Windows 95, 98 et ME où
command.com
elles seraient exécutées dans une machine virtuelle MS-DOS avec Windows agissant comme hyperviseur (oui, ils avaient déjà ce genre de choses à l'époque). Là, vous aviez une machine virtuelle entière exécutant DOS. Mais sous Windows NT, 2000, XP, Vista et 7 - non. DOS ne vit que là-bas, dansntvdm.exe
lequel se trouve la machine DOS virtuelle NT qui n'est qu'une fine couche d'émulation capturant les appels que le processeur ne peut pas exécuter directement (c'est pourquoi il fonctionne plus rapidement mais pire que DOSBox).En tout cas, even
command.com
n'était qu'un shell pour DOS. Ce n'était pas le système d'exploitation.À l'intérieur, je grince des dents chaque fois que je vois des gens se référer à une fenêtre avec du texte gris sur noir comme MS-DOS. Dans la grande majorité des cas, ils ne savent pas de quoi ils parlent.
la source
D'après ce que je comprends, MS-DOS est le système d'exploitation de disque que Microsoft a publié. L'invite de commande est une interface non graphique qui vous permet d'interagir avec votre système d'exploitation.
L'invite de commande est une application d'interpréteur de ligne de commande disponible dans la plupart des systèmes d'exploitation Windows, officiellement appelée Windows Command Processor mais parfois appelée shell de commande. L'invite de commandes est un programme Windows qui émule la plupart des capacités de ligne de commande disponibles dans MS-DOS mais ce n'est pas réellement MS-DOS.
L'invite de commandes est une version graphique de command.com dans MS-DOS. cmd.exe est une application Windows native s'exécutant généralement dans une console Win32. Cela lui permet de tirer parti des fonctionnalités disponibles pour les programmes natifs sur la plate-forme qui ne sont pas disponibles pour les programmes DOS.
Par exemple, comme cmd.exe est une application native en mode texte sur OS / 2, elle peut utiliser de vrais canaux dans les pipelines de commandes, permettant aux deux côtés du pipeline de s'exécuter simultanément. Par conséquent, il est possible de rediriger l'erreur standard dans cmd.exe, contrairement à COMMAND.COM. (COMMAND.COM utilise des fichiers temporaires et exécute les deux côtés en série, l'un après l'autre.)
En réalité, cmd.exe est un programme Windows qui agit comme un interpréteur de ligne de commande de type DOS. Il est généralement compatible, mais fournit des extensions qui corrigent certaines des limitations de COMMAND.COM (les explications ci-dessus sont référencées par Wikipedia).
la source
Votre ami a raison. MS-DOS est / était un système d'exploitation (Microsoft Disk Operating System est ce que l'acronyme signifie.) L'interface utilisateur pour DOS est appelée ( l' invite de commande).
Les premières versions de Windows fonctionnaient au-dessus de DOS (ce qui en fait des environnements fonctionnant techniquement, bien que je ne sois plus sûr que personne fasse cette distinction), mais les systèmes d'exploitation ultérieurs, à commencer par le noyau NT, ne l'ont pas fait - DOS a disparu.
Cependant, les gens avaient toujours besoin de la fonctionnalité fournie par l'invite de commande, et au lieu de command.com, nous avons obtenu command.exe (et de nos jours cmd.exe), qui lors de l'exécution nous donne une invite de commande.
Mais ce n'est pas la seule (ni nulle part près de la première) invite de commande que les gens ont utilisée. Les invites de commande sont également appelées Shells, et Unix en a beaucoup, et les commandes sont différentes et souvent très puissantes. En parlant de Power, Microsoft a créé une nouvelle invite de commande pour Windows appelée PowerShell qui est incroyablement puissante et intéressante. Voir Wikipedia pour plus: http://en.wikipedia.org/wiki/Command-line_interface#Operating_System_Command-Line_Interfaces
la source
Ce ne sont pas les mêmes!
Tout d'abord en raison des différences de plate-forme (DOS vs Windows) et d'interprète (command.com vs cmd.exe), il y aura des différences évidentes comme
mode con:cols=COL lines=ROW
commande pour redimensionner la console, et pas detitle
commandeMais il existe également des différences majeures dans les capacités et la syntaxe des commandes internes entre command.com et cmd.exe, ainsi que certains outils externes dans les deux environnements. Dans MS-DOS, il y a
Pas de fonctions, blocs de code
()
et étendues locales qui signifientfor
,if
... doit être suivi d'une seule commande sur la même ligneexit /b
ougoto :eof
setlocal
etendlocal
goto
ne peut accéder qu'à une étiquette,call
ne peut démarrer qu'un autre fichier de commandesles commandes ne peuvent pas être regroupées comme
Aucun personnage d'échappement
^
. L'impression de caractères spéciaux serait pénible et aucune possibilité d'exécuter des commandes multilignesif
if cmdextversion
etif defined
if [/i] string1 compare-op string2
call set %%var%suffix%=string
) des variables et aucune expansion retardée (par exempleecho !var%suffix%!
)~xxxV
support variable%variable:~num1,num2%
support de remplacement de sous - chaîne ou de chaîne%variable:str=newstr%
set
, etset /a
donc vous ne pouvez pas faire d'arithmétiqueset /p
ce qui signifie que lire les entrées des utilisateurs est une douleurset "var=value"
syntaxe%*
pour toute la ligne de commandefor /d
,for /r
oufor /l
. Nonfor /f
, la lecture des entrées à partir de fichiers est également difficile. La seule formefor
sous DOS estFOR %variable IN (set) DO command [command-parameters]
findstr
, etfind
ne prend pas en charge Unicode%CD% %DATE% %TIME% %RANDOM% %ERRORLEVEL% %CMDEXTVERSION% %CMDCMDLINE% %HIGHESTNUMANODENUMBER%
pushd/popd
cd /d
. Noncd path with spaces
et encd "path with spaces"
raison du manque de prise en charge des noms de fichiers longscolor
forfiles
assoc
(car il n'y a pas d'interface graphique et les fichiers doivent être ouverts manuellement à partir de la ligne de commande, donc aucune association de fichiers n'est nécessaire)Beaucoup de commandes externes utiles dans Windows comme où, trier, plus (dans certaines versions DOS), choix ... manquent également dans DOS
Et c'est ce que Rich Turner de MS a dit
Lectures complémentaires
.bat
fichiers modernes diffèrent-ils des anciens.bat
fichiers MS DOS ?En conclusion, en termes de fonctionnalités, ils peuvent être un peu similaires, mais sinon extrêmement différents
la source