COMMAND.COM - COMMAND.COM

COMMAND.COM
Command.com Win8.png
COMMAND.COM în Windows 8
Alte nume Prompt MS-DOS,
Interpret de comandă Windows
Dezvoltatori Seattle Computer Products , IBM , Microsoft , The Software Link , Datalight , Novell , Caldera
Eliberarea inițială 1980 ; Acum 41 de ani ( 1980 )
Scris in limbaj de asamblare x86
Sistem de operare
Platformă X86 pe 16 biți
Succesor cmd.exe
Tip Interpret de linie de comandă
command.com care rulează într-o consolă Windows pe Windows 95 (prompt MS-DOS)

COMMAND.COM este interpretorul implicit din linia de comandă pentru MS- DOS , Windows 95 - 98 , Windows 98SE și Windows Me . În cazul DOS, este și interfața implicită a utilizatorului. Are un rol suplimentar ca primul program obișnuit rulat după pornire (procesul de inițiere), deci fiind responsabil pentru configurarea sistemului prin rularea fișierului de configurare AUTOEXEC.BAT și fiind strămoșul tuturor proceselor.

Succesorul COMMAND.COM pe sistemele OS / 2 și Windows NT este cmd.exe , deși COMMAND.COM este disponibil în mașini DOS virtuale și pe versiunile IA-32 ale acestor sisteme de operare.

Numele de fișier COMMAND.COM a fost, de asemenea, utilizat de Disk Control Program  [ de ] (DCP), un derivat MS-DOS de către fostul VEB Robotron din Germania de Est .

Procesorul de comandă compatibil sub FreeDOS este uneori numit și FreeCom .

COMMAND.COM este un program DOS. Programele lansate de la COMMAND.COM sunt programe DOS care utilizează API-ul DOS pentru a comunica cu sistemul de operare pe disc.

Moduri de operare

Ca un shell, COMMAND.COM are două moduri de operare distincte. Primul este modul interactiv , în care utilizatorul tastează comenzi care sunt apoi executate imediat. Al doilea este modul batch , care execută o secvență predefinită de comenzi stocate ca fișier text cu extensia .BAT .

Comenzi interne

Comenzile interne sunt comenzi stocate direct în binarul COMMAND.COM. Astfel, acestea sunt întotdeauna disponibile, dar pot fi executate numai direct de la interpretul de comandă.

Toate comenzile sunt executate după ce ↵ Entertasta este apăsată la sfârșitul liniei. COMMAND.COM nu este sensibil la majuscule și minuscule, ceea ce înseamnă că comenzile pot fi tastate în orice amestec de majuscule și minuscule.

PAUZĂ
Controlează gestionarea întreruperii programului cu Ctrl+ Csau Ctrl+ Break.
CHCP
Afișează sau modifică pagina curentă a codului de sistem .
CHDIR, CD
Schimbă directorul de lucru curent sau afișează directorul curent.
CLS
Șterge ecranul.
COPIE
Copiază un fișier în altul (dacă fișierul de destinație există deja, MS-DOS întreabă dacă îl înlocuiți). (A se vedea, de asemenea , XCOPY , o comandă externă care ar putea copia și arborii de directoare).
CTTY
Definește dispozitivul de utilizat pentru intrare și ieșire.
DATA
Afișați și setați data sistemului.
DEL, ȘTERGE
Șterge un fișier. Când este utilizat într-un director, șterge numai toate fișierele din director. În comparație, comanda externă DELTREE șterge toate subdirectoarele și fișierele dintr-un director, precum și directorul în sine.
DIR
Listează fișierele din directorul specificat.
ECOU
Comută dacă este afișat textul ( ECHO ON) sau nu ( ECHO OFF). Afișează și text pe ecran ( ECHO text).
IEȘIRE
Iese din COMMAND.COM și revine la programul care l-a lansat.
LFNFOR
Activează sau dezactivează returnarea numelor de fișiere lungi de către comanda FOR. ( Windows 9x ).
LOADHIGH, LH
Încarcă un program în memoria superioară ( HILOADîn DR DOS ).
LACĂT
Permite programelor externe să efectueze acces la disc de nivel scăzut la un volum. ( Numai MS-DOS 7.1 și Windows 9x )
MKDIR, MD
Creează un director nou.
CALE
Afișează sau modifică valoarea variabilei de mediu PATH care controlează locurile în care COMMAND.COM va căuta fișiere executabile.
PROMPT
Afișează sau modifică valoarea variabilei de mediu PROMPT care controlează aspectul promptului.
RENAME, REN
Redenumește un fișier sau un director.
RMDIR, RD
Elimină un director gol.
A STABILIT
Setează valoarea unei variabile de mediu ; fără argumente, arată toate variabilele de mediu definite.
TIMP
Afișați și setați ora sistemului.
NUME TRUEN
Afișați numele fizic complet extins al unui fișier, rezolvând mapările logice ASSIGN , JOIN și SUBST .
TIP
Afișați conținutul unui fișier pe consolă.
DEBLOCAȚI
Dezactivează accesul la disc de nivel scăzut. ( Numai MS-DOS 7.1 și Windows 9x )
VER
Afișează versiunea sistemului de operare .
VERIFICA
Activați sau dezactivați verificarea scrierii pentru fișiere.
VOL
Afișează informații despre un volum.

Comenzi de fișiere batch

Structurile de control sunt utilizate mai ales în fișiere batch, deși pot fi utilizate și interactiv.

: etichetă
Definește o țintă pentru GOTO.
APEL
Execută un alt fișier batch și revine la cel vechi și continuă.
PENTRU
Iterare: repetă o comandă pentru fiecare dintr-un set specificat de fișiere.
MERGI LA
Mută ​​execuția pe o etichetă specificată. Etichetele sunt specificate la începutul unei linii, cu un punct ( :likethis).
DACĂ
Declarație condiționată, permite ramificarea execuției programului.
PAUZĂ
Oprește executarea programului și afișează un mesaj prin care îi solicită utilizatorului să apese orice tastă pentru a continua.
REM
comentariu : orice text care urmează acestei comenzi este ignorat.
SCHIMB
Înlocuiește fiecare dintre parametrii de înlocuire cu următorul (de exemplu %0cu %1, %1cu %2etc.).

Comanda IF

La ieșire, toate comenzile externe trimit un cod de returnare (o valoare între 0 și 255) programului apelant. Majoritatea programelor au o anumită convenție pentru codurile lor de returnare (de exemplu, 0 pentru o execuție reușită).

Dacă un program a fost invocat de COMMAND.COM, comanda IF internă cu condiționalitatea sa ERRORLEVEL poate fi utilizată pentru a testa condițiile de eroare ale ultimului program extern invocat.

Sub COMMAND.COM, comenzile interne nu stabilesc o valoare nouă.

Variabile

Fișierele lot pentru COMMAND.COM pot avea patru tipuri de variabile:

  • Variabile de mediu : acestea au %VARIABLE%forma și sunt asociate cu valori cu instrucțiunea SET. Înainte de DOS 3 COMMAND.COM va extinde numai variabilele de mediu în modul batch; adică nu interactiv la promptul de comandă.
  • Parametri de înlocuire : Aceștia au forma %0, %1... %9și conțin inițial numele comenzii și primii nouă parametri din linia de comandă trecuți scriptului (de exemplu, dacă comanda invocatoare a fost „ myscript.bat John Doe”, atunci %0este „myscript.bat”, %1este „ John "și %2este" Doe "). Parametrii din dreapta celui de-al nouălea pot fi mapați în interval folosind instrucțiunea SHIFT.
  • Variabile de buclă: utilizate în bucle, au %%aformatul atunci când sunt rulate în fișiere batch. Aceste variabile sunt definite exclusiv într-o instrucțiune FOR specifică și se repetă pe un anumit set de valori definite în acea instrucțiune FOR.
  • Sub Novell DOS 7 , OpenDOS 7.01 , DR-DOS 7.02 și versiuni ulterioare, COMMAND.COM acceptă, de asemenea, o serie de variabile de informații de sistem , o caracteristică găsită mai devreme în 4DOS 3.00 și versiuni superioare, precum și în DOS multi-utilizator, deși majoritatea numelor de variabile acceptate diferă.

Redirecționare, conducte și înlănțuire

Deoarece DOS este un sistem de operare cu o singură sarcină, canalizarea se realizează executând comenzi secvențial, redirecționând către și de la un fișier temporar . COMMAND.COM nu prevede nicio redirecționare a canalului de eroare standard .

command < filename
Redirecționați intrarea standard dintr-un fișier sau dispozitiv
command > filename
Redirecționați ieșirea standard , suprascriind fișierul țintă dacă există.
command >> filename
Redirecționați ieșirea standard , adăugând fișierul țintă dacă există.
command1 | command2
Țeavă standard de ieșire de la command1 la intrarea standard a comanda2
command1command2
Comenzile separate prin ASCII-20 (¶, invocate cu Ctrl+ T) sunt executate în ordine (înlănțuirea comenzilor). Cu alte cuvinte, prima comandă1 este executată până la terminare, apoi comanda2 . Aceasta este o caracteristică nedocumentată în COMMAND.COM a MS-DOS / PC DOS 5.0 și versiuni ulterioare. De asemenea, este susținut de COMMAND.COM al familiei Windows NT, precum și de DR-DOS 7.07. Toate versiunile de DR-DOS COMMAND.COM au acceptat deja o funcție internă similară utilizând în schimb un semn de exclamare (!) (O caracteristică derivată inițial din DOS simultan și DOS multiusor ) - totuși, în linia pentru un singur utilizator această caracteristică era disponibilă numai intern (în scripturile de pornire încorporate precum "! DATE! TIME") și indirect prin parametrul $ T al DOSKEY pentru a evita problemele cu! ca un caracter de nume de fișier valid. 4DOS acceptă un separator de linie de comandă configurabil ( 4DOS.INI CommandSep = sau SETDOS / C), care implicit este ^. COMMAND.COM în versiunile mai noi de Windows NT acceptă, de asemenea, un &separator pentru compatibilitatea cu sintaxa cmd din OS / 2 și familia Windows NT. (cmd, totuși, nu acceptă separatorul ¶)

Limitări

Lungimea liniei de comandă în modul interactiv este limitată la 126 de caractere.

În cultura populară

Mesajul „Încărcare COMMAND.COM” poate fi văzut pe o vizualizare HUD a Terminatorului și a ferestrei interne a RoboCop atunci când repornește.

În seria TV pentru copii CGI ReBoot , care are loc în interiorul computerelor, liderul unui sistem (echivalentul unui oraș) se numește COMMAND.COM.

Vezi si

Referințe

Lecturi suplimentare

  • Cooper, Jim (2001). Ediție specială folosind MS-DOS 6.22 (3 ed.). Editura Que . ISBN 978-0-78972573-8.
  • Wolverton, Van (1990). Comenzi MS-DOS: Microsoft Quick Reference (ediția a 4-a revizuită). Microsoft Press . ISBN 978-1-55615289-4.
  • Paul, Matthias R. (2004-06-17). „Re: blocări aleatorii cu DR-DOS 7.03” . Conferință FidoNet : ALT_DOS . Arhivat din original în data de 28.04.2019 . Adus 28-04-2019 . […] Toate versiunile MS-DOS anterioare Windows 95 […] foloseau un fișier COM de tip COM, care are o semnătură specială la începutul fișierului […] solicitat de BIOS-ul MS-DOS înainte de a încărca shell-ul, dar nu de BI-ul DR-DOS […] COMMAND.COM ar verifica […] dacă rulează pe versiunea DOS „corectă”, deci dacă le-ați încărca COMMAND.COM în DR-DOS, veți primi un „ Mesaj de eroare „Versiune greșită” și COMMAND.COM ar ieși, astfel încât DR-DOS ar afișa un mesaj de eroare „Interpretare de comandă greșită sau lipsă” (dacă DR-DOS încerca să încarce procesorul de comandă SHELL = după ce a terminat CONFIG .Procesare SYS). În acest caz, puteți introduce calea către un DR-DOS COMMAND.COM valid (C: \ DRDOS \ COMMAND.COM) și totul a fost în regulă. Acum, lucrurile s-au schimbat de când MS-DOS 7.0 […] COMMAND.COM a devenit intern un fișier în stil EXE, deci nu există nicio semnătură magică […] pentru a verifica […], deci nu există nicio modalitate pentru ca DR-DOS să conducă un COMMAND.COM incompatibil. Mai mult, COMMAND.COM nu mai verifică nicio versiune, dar […] nu funcționează sub DR-DOS […] doar se blochează […] PC DOS COMMAND.COM funcționează bine sub DR-DOS […] [8] [9]

linkuri externe

  • COMMAND.ASM pe GitHub - Cod sursă la COMMAND.COM versiunea 2.11 lansată de Microsoft ca parte a MS-DOS 2.0
  • COMMAND.ASM pe GitHub - Cod sursă la COMMAND.COM versiunea 1.17 lansată de Microsoft ca parte a MS-DOS 1.25
  • FreeCom - Implementarea COMMAND.COM a FreeDOS