COMMAND.COM - COMMAND.COM

COMMAND.COM
Command.com Win8.png
COMMAND.COM no Windows 8
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 ; 41 anos atrás ( 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 em execução em um console do Windows no Windows 95 (prompt do MS-DOS)

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  [ de ] (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 ( HILOADem 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, %0com %1, %1com %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 %%aformato 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
command1command2
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

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