COMMAND.COM - COMMAND.COM
Outros nomes | Prompt do MS-DOS, intérprete de comandos do Windows |
---|---|
Desenvolvedor (s) | Seattle Computer Products , IBM , Microsoft , The Software Link , Datalight , Novell , Caldera |
lançamento inicial | 1980 |
Escrito em | linguagem assembly x86 |
Sistema operacional | |
Plataforma | X86 de 16 bits |
Sucessor | cmd.exe |
Modelo | Intérprete de linha de comando |
COMMAND.COM é o interpretador de linha de comando padrão para MS- DOS , Windows 95 - 98 , Windows 98SE e Windows Me . No caso do DOS, também é a interface de usuário padrão. Ele tem uma função adicional como o primeiro programa normal executado após a inicialização (processo init), portanto, é responsável por configurar o sistema executando o arquivo de configuração AUTOEXEC.BAT e sendo o ancestral de todos os processos.
O sucessor do COMMAND.COM nos sistemas OS / 2 e Windows NT é o cmd.exe , embora o COMMAND.COM também esteja disponível em máquinas DOS virtuais nas versões IA-32 desses sistemas operacionais.
O nome de arquivo COMMAND.COM também foi usado pelo Disk Control Program (DCP), um derivado do MS-DOS do antigo VEB Robotron da Alemanha Oriental .
O processador de comando compatível no FreeDOS às vezes também é denominado FreeCom .
COMMAND.COM é um programa DOS. Os programas iniciados em COMMAND.COM são programas DOS que usam a API DOS para se comunicar com o sistema operacional do disco.
Modos de operação
Como um shell, COMMAND.COM tem dois modos distintos de operação. O primeiro é o modo interativo , no qual o usuário digita comandos que são executados imediatamente. O segundo é o modo batch , que executa uma sequência predefinida de comandos armazenados como um arquivo de texto com a extensão .BAT .
Comandos internos
Os comandos internos são comandos armazenados diretamente no binário COMMAND.COM. Assim, eles estão sempre disponíveis, mas só podem ser executados diretamente a partir do interpretador de comandos.
Todos os comandos são executados após a ↵ Entertecla ser pressionada no final da linha. COMMAND.COM não faz distinção entre maiúsculas e minúsculas, o que significa que os comandos podem ser digitados em qualquer combinação de maiúsculas e minúsculas.
- PAUSA
- Controla o tratamento da interrupção do programa com Ctrl+ Cou Ctrl+ Break.
- CHCP
- Exibe ou altera a página de código do sistema atual .
- CHDIR, CD
- Altera o diretório de trabalho atual ou exibe o diretório atual.
- CLS
- Limpa a tela.
- CÓPIA DE
- Copia um arquivo para outro (se o arquivo de destino já existir, o MS-DOS pergunta se ele deve ser substituído). (Veja também XCOPY , um comando externo que também pode copiar árvores de diretório).
- CTTY
- Define o dispositivo a ser usado para entrada e saída.
- ENCONTRO
- Exibe e define a data do sistema.
- DEL, ERASE
- Exclui um arquivo. Quando usado em um diretório, exclui todos os arquivos dentro do diretório apenas. Em comparação, o comando externo DELTREE exclui todos os subdiretórios e arquivos dentro de um diretório, bem como o próprio diretório.
- DIR
- Lista os arquivos no diretório especificado.
- ECO
- Alterna se o texto é exibido (
ECHO ON
) ou não (ECHO OFF
). Também exibe texto na tela (ECHO text
). - SAÍDA
- Sai de COMMAND.COM e retorna ao programa que o iniciou.
- LFNFOR
- Habilita ou desabilita o retorno de nomes extensos de arquivos pelo comando FOR. ( Windows 9x ).
- LOADHIGH, LH
- Carrega um programa na memória superior (
HILOAD
em DR DOS ). - TRANCAR
- Permite que programas externos executem acesso de disco de baixo nível a um volume. ( Somente MS-DOS 7.1 e Windows 9x )
- MKDIR, MD
- Cria um novo diretório.
- CAMINHO
- Exibe ou altera o valor da variável de ambiente PATH que controla os locais onde o COMMAND.COM pesquisará por arquivos executáveis.
- MENSAGEM
- Exibe ou altera o valor da variável de ambiente PROMPT que controla a aparência do prompt.
- RENAME, REN
- Renomeia um arquivo ou diretório.
- RMDIR, RD
- Remove um diretório vazio.
- DEFINIR
- Define o valor de uma variável de ambiente ; sem argumentos, mostra todas as variáveis de ambiente definidas.
- TEMPO
- Exibe e define a hora do sistema.
- NOME VERDADEIRO
- Exibe o nome físico totalmente expandido de um arquivo, resolvendo os mapeamentos do sistema de arquivos lógico ASSIGN , JOIN e SUBST .
- MODELO
- Exibe o conteúdo de um arquivo no console.
- DESBLOQUEAR
- Desativa o acesso ao disco de baixo nível. ( Somente MS-DOS 7.1 e Windows 9x )
- VER
- Exibe a versão do sistema operacional .
- VERIFICAR
- Habilite ou desabilite a verificação de gravação de arquivos.
- VOL
- Mostra informações sobre um volume.
Comandos de arquivo em lote
As estruturas de controle são usadas principalmente em arquivos em lote, embora também possam ser usadas interativamente.
- : etiqueta
- Define um alvo para GOTO.
- LIGAR
- Executa outro arquivo em lote, retorna ao antigo e continua.
- PARA
- Iteração: repete um comando para cada um de um conjunto especificado de arquivos.
- VAMOS PARA
- Move a execução para um rótulo especificado. Os rótulos são especificados no início de uma linha, com dois pontos (
:likethis
). - E SE
- Declaração condicional, permite a ramificação da execução do programa.
- PAUSA
- Interrompe a execução do programa e exibe uma mensagem solicitando ao usuário que pressione qualquer tecla para continuar.
- REM
- comentário : qualquer texto após este comando é ignorado.
- MUDANÇA
- Substitui cada um dos parâmetros de substituição com o um subsequente (por exemplo,
%0
com%1
,%1
com%2
, etc).
Comando IF
Ao sair, todos os comandos externos enviam um código de retorno (um valor entre 0 e 255) para o programa de chamada. A maioria dos programas tem uma certa convenção para seus códigos de retorno (por exemplo, 0 para uma execução bem-sucedida).
Se um programa foi invocado por COMMAND.COM, o comando interno IF com sua condicional ERRORLEVEL pode ser usado para testar as condições de erro do último programa externo invocado.
Em COMMAND.COM, os comandos internos não estabelecem um novo valor.
Variáveis
Os arquivos em lote para COMMAND.COM podem ter quatro tipos de variáveis:
-
Variáveis de ambiente : têm a
%VARIABLE%
forma e estão associadas a valores com a instrução SET. Antes do DOS 3, o COMMAND.COM só expandia as variáveis de ambiente no modo batch; ou seja, não interativamente no prompt de comando. -
Parâmetros de substituição : eles têm a forma
%0
,%1
...%9
, e inicialmente contêm o nome do comando e os primeiros nove parâmetros da linha de comando passados para o script (por exemplo, se o comando de chamada era "myscript.bat John Doe
", então%0
é "myscript.bat",%1
é " John "e%2
é" Doe "). Os parâmetros à direita do nono podem ser mapeados em intervalo usando a instrução SHIFT. - Variáveis de loop: Usadas em loops, elas têm o
%%a
formato quando são executadas em arquivos em lote. Essas variáveis são definidas somente em uma instrução FOR específica e iteram sobre um determinado conjunto de valores definidos nessa instrução FOR. - No Novell DOS 7 , OpenDOS 7.01 , DR-DOS 7.02 e superior, COMMAND.COM também suporta uma série de variáveis de informações do sistema , um recurso encontrado anteriormente em 4DOS 3.00 e superior, bem como no Multiusuário DOS , embora a maioria dos nomes de variáveis suportados diferem.
Redirecionamento, tubulação e encadeamento
Como o DOS é um sistema operacional de tarefa única, a tubulação é obtida executando comandos sequencialmente, redirecionando de e para um arquivo temporário . COMMAND.COM não faz provisões para redirecionar o canal de erro padrão .
command < filename
- Redirecionar a entrada padrão de um arquivo ou dispositivo
command > filename
- Redirecione a saída padrão , sobrescrevendo o arquivo de destino, se existir.
command >> filename
- Redirecione a saída padrão , acrescentando ao arquivo de destino, se existir.
command1 | command2
- Tubo de saída padrão de comando1 a entrada padrão de comando2
command1 ¶ command2
- Os comandos separados por ASCII-20 (¶, invocado por Ctrl+ T) são executados em sequência (encadeamento de comandos). Em outras palavras, primeiro command1 é executado até o término e, em seguida, command2 . Este é um recurso não documentado no COMMAND.COM do MS-DOS / PC DOS 5.0 e superior. Também é suportado pelo COMMAND.COM da família Windows NT, bem como pelo DR-DOS 7.07. Todas as versões do DR-DOS COMMAND.COM já suportavam uma função interna semelhante utilizando um ponto de exclamação (!) (Um recurso originalmente derivado do DOS Simultâneo e DOS Multiusuário ) - no entanto, na linha de usuário único, esse recurso só estava disponível internamente (em scripts de inicialização integrados como "! DATE! TIME") e indiretamente por meio do parâmetro $ T do DOSKEY para evitar problemas com! como um caractere de nome de arquivo válido. 4DOS suporta um separador de linha de comando configurável ( 4DOS.INI CommandSep = ou SETDOS / C), cujo padrão é ^. O COMMAND.COM nas versões mais recentes do Windows NT também oferece suporte a um
&
separador para compatibilidade com a sintaxe cmd no OS / 2 e na família Windows NT. (cmd, no entanto, não suporta o separador ¶.)
Limitações
O comprimento da linha de comando no modo interativo é limitado a 126 caracteres.
Na cultura popular
A mensagem "Carregando COMMAND.COM" pode ser vista em uma visualização do HUD do Terminator e na janela de visualização interna do RoboCop quando ele for reinicializado.
Na série infantil ReBoot da CGI , que acontece dentro de computadores, o líder de um sistema (o equivalente a uma cidade) é chamado de COMMAND.COM.
Veja também
- IBMBIO.COM / IO.SYS (inicia o processador de comando como o primeiro processo)
- SHELL (diretiva CONFIG.SYS) (para substituir o processador de comando padrão)
- COMSPEC (variável de ambiente) (definido por COMMAND.COM para recarregar sua parte transitória)
- CMDLINE (variável de ambiente) (definido por COMMAND.COM para passar longas linhas de comando para programas externos)
- 4DOS / NDOS (processadores de comando de substituição de terceiros)
- DOSSHELL / ViewMAX (shells DOS alternativos)
- Lista de comandos DOS
- Comparação de shells de comando
- DOS simultâneo / multiusuário DOS / REAL / 32 (têm processadores de comando semelhantes não denominados COMMAND.COM)
- PC-MOS / 386 (tem um processador de comando semelhante também denominado COMMAND.COM)
- Transient Program Area (TPA) (área disponível para uso pelo aplicativo em execução ou pela parte temporária do COMMAND.COM)
- SpartaDOS X (uma implementação semelhante para computadores Atari)
Referências
Leitura adicional
- Cooper, Jim (2001). Edição especial usando MS-DOS 6.22 (3 ed.). Publicação de Que . ISBN 978-0-78972573-8.
- Wolverton, Van (1990). Comandos do MS-DOS: Referência rápida da Microsoft (4ª edição revisada). Microsoft Press . ISBN 978-1-55615289-4.
-
Paul, Matthias R. (2004-06-17). "Re: Bloqueios aleatórios com DR-DOS 7.03" . Conferência FidoNet : ALT_DOS . Arquivado do original em 28/04/2019 . Página visitada em 28/04/2019 .
[...] todas as versões do MS-DOS anteriores ao Windows 95 [...] usavam um arquivo COMMAND.COM estilo COM que tem uma assinatura especial no início do arquivo [...] consultado pelo BIOS do MS-DOS antes de carregar o shell, mas não pelo BIOS do DR-DOS [...] O COMMAND.COM [...] verificaria se está sendo executado na versão "correta" do DOS, portanto, se você carregasse o COMMAND.COM no DR-DOS, receberia um " Mensagem de erro de versão incorreta "e seu COMMAND.COM seria encerrado, então o DR-DOS [...] exibiria uma mensagem de erro" Intérprete de comando inválido ou ausente "(se o DR-DOS estava tentando carregar o processador de comando SHELL = após ter concluído o CONFIG .SYS processando). Nesse caso, você poderia inserir o caminho para um DR-DOS COMMAND.COM válido (C: \ DRDOS \ COMMAND.COM) e tudo correria bem. Agora, as coisas mudaram desde o MS-DOS 7.0 […] COMMAND.COM internamente se tornou um arquivo de estilo EXE, então não há nenhuma […] assinatura mágica […] para verificar […], portanto, não há como o DR-DOS governar um COMMAND.COM incompatível. Além disso, o COMMAND.COM deles não faz mais verificações de versão, mas [...] não funciona no DR-DOS [...] apenas trava [...] o COMMAND.COM DOS PC funciona bem no DR-DOS [...]
[8] [9]
links externos
- COMMAND.ASM no GitHub - código-fonte do COMMAND.COM versão 2.11 lançado pela Microsoft como parte do MS-DOS 2.0
- COMMAND.ASM no GitHub - código-fonte do COMMAND.COM versão 1.17 lançado pela Microsoft como parte do MS-DOS 1.25
- FreeCom - implementação de COMMAND.COM do FreeDOS