TL; DR
Quando si esegue un programma console a 32 bit, viene eseguito da cmd
; quando si esegue un programma console a 16 bit, viene eseguito da command
.
Dettagli
Windows XP include un sottosistema per supportare le applicazioni a 16 bit meno recenti.
Le vecchie applicazioni a 16 bit sono disponibili come programmi DOS e Windows. I programmi DOS per loro natura sono applicazioni console ed eseguiti in quello che sembra il prompt dei comandi. Tuttavia, le applicazioni della console di Windows a 32 bit sono molto simili e hanno lo stesso aspetto.
L'elaboratore / interprete dei comandi cmd
ha diversi scopi:
- Per eseguire il programma di console di Windows di testo a 32 bit
- Per fornire e gestire le varie funzioni della riga di comando (
dir
, copy
ecc)
- Interpretazione ed esecuzione di file batch (
.bat
file compatibili DOS e .cmd
file compatibili NT )
Quando si esegue un vecchio programma console a 16 bit, viene eseguito da NTVDM (macchina virtuale virtuale Windows NT). Fornisce un sistema DOS emulato (da cui la macchina DOS virtuale ) che è simile all'esecuzione di un software di macchina virtuale dedicato, tranne per il fatto che il livello di emulazione è più semplice. command
è una versione a 16 bit dell'interprete dei comandi che è molto più vicina al DOS effettivo di quello cmd.exe
che in realtà è un programma Windows (e ha l'intestazione Windows PE, a differenza di quella command.com
con l'intestazione MZ DOS).
command
ha gli stessi scopi cmd
tranne per il fatto che supporta solo programmi a 16 bit. Inoltre, non supporta i .cmd
file e ha meno comandi integrati ed è più limitato nella sua sintassi ( cmd
è un interprete della riga di comando più nuovo, più moderno, più avanzato, simile a 4DOS ).
Tuttavia, supporta programmi DOS grafici (come i vecchi giochi), ma il successo della loro esecuzione dipende dai driver della scheda video e dalla natura del programma. Esistono numerosi siti che offrono vari trucchi per far funzionare i giochi DOS su Windows (sebbene il successo su Vista e su di solito sia più limitato che su XP).
Va notato che le versioni a 64 bit di Windows hanno completamente eliminato il supporto dei programmi a 16 bit e quindi non includono command
affatto, quindi non verranno eseguiti né i programmi DOS né Windows a 16 bit e verrà invece visualizzato un messaggio di errore (fuorviante) .
Note tecniche
command.com
ha .com
un'estensione per la retrocompatibilità con i programmi DOS, ma come la maggior parte delle altre versioni Windows di comandi DOS esterni, internamente è in realtà un .exe
file Windows PE . Ciò fornisce l'interessante osservazione che mentre Windows utilizza l'estensione come indicatore di come gestire la maggior parte dei tipi di file, per quelli eseguibili, ignora l'estensione e ne esamina il contenuto (altrimenti .exe
non funzionerebbe se trattata come .com
). Questa domanda riguarda questo effetto.
command.com
sia la versione legacy a 16 bit (disponibile solo su installazioni a 32 bit). Non esiste sulla mia versione a 64 bit di Windows 7.