Argumentei com meu amigo que o prompt de comando é apenas uma versão GUI do MS-DOS que funciona no ambiente de formulários do Windows. Ele discorda totalmente de mim.
Quem está certo?
windows
command-line
ms-dos
user978733
fonte
fonte
cmd.exe
é um animal totalmente diferente do MS-DOS.Respostas:
Isso já foi verdade uma vez, mas não é mais.
No MS-DOS # interface de linha de comando do Windows - Wikipedia :
Portanto, não, em todos os Windows da família NT (por exemplo, XP, Vista, 7, 8), o prompt de comando e o MS-DOS são visualmente semelhantes, mas bem diferentes.
fonte
cmd.exe
teria sidocommand.com
, uma parte bastante pequena do MSDOS.São coisas diferentes - o prompt de comando não é o MS-DOS - mas, no que diz respeito ao usuário, elas podem ser a mesma coisa que fazem as mesmas coisas.
Portanto, depende do seu ponto de vista. Do ponto de vista técnico, seu amigo está correto, mas, do ponto de vista do usuário, você está correto (como existem diferenças que um especialista detectaria).
fonte
Não.
(A menos que sua definição de igualdade não ultrapasse » É uma interface de texto e eu posso executar programas a partir dela. « )
O que é executado quando você clica em Prompt de Comando no Menu Iniciar é o Processador de Comandos do Windows, também conhecido como
cmd.exe
. Seus comandos internos e sintaxe de script (incluindo muitas peculiaridades) são baseados no antigocommand.com
CP / M e no MS-DOS posterior, mas, além disso, são coisas completamente separadas. Além disso,command.com
é um programa de 16 bits enquantocmd.exe
é um aplicativo de console nativo do Windows.As coisas eram diferentes no Windows 95, 98 e ME, onde
command.com
seria executado em uma VM do MS-DOS com o Windows atuando como hipervisor (sim, eles já tinham esse tipo de coisa na época). Lá você tinha uma máquina virtual inteira executando o DOS. Mas no Windows NT, 2000, XP, Vista e 7 - não. O DOS só vive lántvdm.exe
onde está a NT Virtual DOS Machine, que é apenas uma fina camada de emulação que captura chamadas que a CPU não pode executar diretamente (é por isso que funciona mais rápido, mas pior que o DOSBox).De qualquer forma, até
command.com
era apenas um shell para o DOS. Não era o sistema operacional.Lá dentro, eu me encolho cada vez que vejo pessoas se referindo a uma janela com texto cinza-preto como MS-DOS. Na grande maioria dos casos, eles realmente não sabem a que se referem.
fonte
Pelo que entendi, o MS-DOS é o sistema operacional do disco lançado pela Microsoft. O prompt de comando é uma interface não gráfica que permite interagir com seu sistema operacional.
O Prompt de Comando é um aplicativo de interpretador de linha de comando disponível na maioria dos sistemas operacionais Windows, oficialmente chamado de Processador de Comando do Windows, mas às vezes chamado de shell de comando. O prompt de comando é um programa do Windows que emula muitas das habilidades de linha de comando disponíveis no MS-DOS, mas na verdade não é o MS-DOS.
O prompt de comando é uma versão da GUI do command.com no MS-DOS. O cmd.exe é um aplicativo nativo do Windows, geralmente executando em um console do Win32. Isso permite tirar proveito dos recursos disponíveis para programas nativos na plataforma que, de outra forma, não estão disponíveis nos programas DOS.
Por exemplo, como o cmd.exe é um aplicativo de modo de texto nativo no OS / 2, ele pode usar canais reais nos pipelines de comando, permitindo que ambos os lados do pipeline sejam executados simultaneamente. Como resultado, é possível redirecionar o erro padrão no cmd.exe, diferente do COMMAND.COM. (O COMMAND.COM usa arquivos temporários e executa os dois lados em série, um após o outro.)
Na realidade, o cmd.exe é um programa do Windows que atua como um interpretador de linha de comando semelhante ao DOS. Geralmente é compatível, mas fornece extensões que abordam algumas das limitações do COMMAND.COM (as explicações acima são referidas na Wikipedia).
fonte
Seu amigo está certo. O MS-DOS é / era um sistema operacional (o Microsoft Disk Operating System é o que a sigla significa.) A interface do usuário do DOS é chamada de prompt de comando ( o ).
As primeiras versões do Windows rodavam sobre o DOS (tornando-os ambientes tecnicamente operacionais, embora eu não tenha mais certeza de que alguém faça essa distinção), mas os sistemas operacionais posteriores, começando com o Kernel do NT, não - o DOS se foi.
No entanto, as pessoas ainda precisavam da funcionalidade fornecida pelo prompt de comando e, em vez de command.com, obtivemos o command.exe (e atualmente cmd.exe), que, quando executado, fornece um prompt de comando.
Mas, esse não é o único prompt de comando (nem em qualquer lugar próximo do primeiro) que as pessoas usaram. Os Prompt de Comando também são chamados de Shells, e o Unix possui muitos, e os comandos são diferentes e geralmente muito poderosos. Falando em energia, a Microsoft criou um novo prompt de comando para o Windows chamado PowerShell, que é incrivelmente poderoso e interessante. Consulte a Wikipedia para obter mais informações: http://en.wikipedia.org/wiki/Command-line_interface#Operating_System_Command-Line_Interfaces
fonte
Eles não são os mesmos!
Em primeiro lugar, devido a diferenças na plataforma (DOS x Windows) e no interpretador (command.com vs cmd.exe), haverá diferenças óbvias como
mode con:cols=COL lines=ROW
comando para redimensionar o console e nenhumtitle
comandoMas também existem grandes diferenças nos recursos e na sintaxe dos comandos internos entre command.com e cmd.exe, além de algumas ferramentas externas nos dois ambientes. No MS-DOS existem
Sem funções, blocos de código
()
e escopos locais, o que significafor
,if
... deve ser seguido por um único comando na mesma linhaexit /b
ougoto :eof
setlocal
eendlocal
goto
só pode pular para um rótulo,call
só pode iniciar outro arquivo em lotecomandos não podem ser agrupados como
Nenhum caractere de escape
^
. Imprimir caracteres especiais seria muito trabalhoso e não havia possibilidade de executar comandos com várias linhasif
if cmdextversion
eif defined
if [/i] string1 compare-op string2
call set %%var%suffix%=string
) de variáveis e nenhuma expansão atrasada (por exemploecho !var%suffix%!
)~xxxV
suporte variável%variable:~num1,num2%
suporte de substituição de substring ou string%variable:str=newstr%
set
eset /a
então você não pode fazer aritméticaset /p
que significa ler a entrada do usuário é uma dorset "var=value"
sintaxe%*
para toda a linha de comandofor /d
,for /r
oufor /l
. Não,for /f
portanto, a leitura de entrada de arquivos também é difícil. A única forma defor
no DOS éFOR %variable IN (set) DO command [command-parameters]
findstr
efind
não suporta Unicode%CD% %DATE% %TIME% %RANDOM% %ERRORLEVEL% %CMDEXTVERSION% %CMDCMDLINE% %HIGHESTNUMANODENUMBER%
pushd/popd
cd /d
. Também nãocd path with spaces
ecd "path with spaces"
devido à falta de suporte a nomes de arquivos longoscolor
forfiles
assoc
(porque não há GUI e os arquivos devem ser abertos manualmente na linha de comando, portanto, nenhuma associação de arquivo é necessária)Muitos comandos externos úteis no Windows, como onde, tipo, mais (em algumas versões do DOS), opções ... também estão ausentes no DOS
E é isso que Rich Turner, da MS, disse
Leitura adicional
.bat
arquivos modernos diferem dos arquivos antigos do MS DOS.bat
?Em conclusão, em termos de funcionalidade, eles podem ser um pouco semelhantes, mas, de outra forma, extremamente diferentes
fonte