COMMAND.COM

Z Multimediaexpo.cz

COMMAND.COM je jméno implicitního shellu pro DOS a implicitní interpret příkazového řádku v 16/32bitových verzích Microsoft Windows (95/98/Me). Při startu systému DOS je COMMAND.COM automaticky spuštěn a je automaticky proveden dávkový soubor AUTOEXEC.BAT. Je také rodičem všech následně spuštěných procesů.

Nástupcem programu COMMAND.COM je v systémech OS/2 a Windows NT program cmd.exe. Program COMMAND.COM je však v těchto systémech stále přítomen, aby bylo možné zajistit vyšší kompatibilitu se staršími programy.

Obsah

Operační režimy

Jako shellCOMMAND.COM dva režimy. První je interaktivní režim, ve kterém jsou vložené příkazy ihned zpracovány. Druhý je dávkový režim, který provádí příkazy předem zapsané v dávkovém souboru s příponou .BAT.

Zadávání příkazů

Všechny vložené příkazy jsou provedeny po stisknutí klávesy Enter na konci zadaného řádku. Interpret COMMAND.COM nerozlišuje velikost písmen (anglicky case insensitive), takže příkazy mohou být vkládány bez ohledu na velká a malá písmena (všechny zápisy dir, DIR and DiR jsou stejný příkaz).

Chceme-li spustit program, není nutné zadávat příponu .BAT, .COM ani .EXE. Změna jednotky se provádí zadáním jejího jména následovaného dvojtečkou (tj. např. A:).

Interní příkazy

Aby bylo možné pracovat se systémem i v případě, že nemáme k dispozici žádné externí programy (s příponami .COM a .EXE), jsou všechny základní příkazy prováděny samotným interpretem COMMAND.COM. Jsou to:

DIR 
vypíše soubory v (aktuálním) adresáři
CD, CHDIR 
změní pracovní adresář nebo zobrazí aktuální adresář
COPY 
kopíruje soubor (pokud cíl existuje, zeptá se, zda ho má přepsat); viz také externí program XCOPY, který může kopírovat celé adresáře
REN, RENAME 
přejmenování souboru nebo adresáře
DEL, ERASE 
smazání souboru; při použití na adresář smaže všechny obsažené soubory, ale neumí smazat adresáře rekurzivně nebo smazat samotný adresář
MD, MKDIR 
vytvoří adresář
RD, RMDIR 
smaže adresář
VOL 
zobrazí informace o svazku
LABEL 
změní popisku svazku
VERIFY 
povolí nebo zakáže kontrolu zápisu do souborů
TYPE 
zobrazí obsah souboru na konzoli
BREAK 
zapíná a vypíná přerušení pomocí Ctrl+C
CLS 
smaže obrazovku
CHCP 
zobrazí aktuální znakovou stránku
CTTY 
definuje zařízení pro vstup a výstup
DATE 
nastaví datum
ECHO 
zapne nebo vypne zobrazování textu (ECHO ON) a (ECHO OFF); zobrazí text na obrazovce (ECHO text)
LH, LOADHIGH 
zavede program do vrchní paměti (anglicky upper memory) (HILOAD v DR DOSu)
LOCK 
povolí externím programům přímý přístup na pevný disk (pouze Windows 95/98/Me)
PATH 
zobrazí nebo nastaví cestu PATH, kde COMMAND.COM hledá spustitelné soubory
PAUSE 
pozastaví provádění dávkového souboru a vyčká do stisknutí klávesy
PROMPT 
zobrazí nebo změní nastavení Promptu
SET 
nastaví proměnnou; bez parametru zobrazí všechny nastavené proměnné
TIME 
nastaví čas
UNLOCK 
zakáže přímý přístup na disk (pouze Windows 95/98/Me)
VER 
zobrazí verzi operačního systému

Nedokumentované příkazy

Některé verze MS-DOSu obsahují nedokumentované příkazy:

LFNFOR 
povolí nebo zakáže příkazu FOR vracet dlouhé názvy souborů (pouze Windows 95/98/Me)[1]
TRUENAME 
zobrazí skutečné jméno souboru (vynechá mapování pomocí SUBST a ASSIGN)

Řídící struktury

Řídící struktury jsou využívány zejména v dávkových souborech, avšak mohou být využity i v interaktivním režimu.

:label 
definuje návěští (cíl pro GOTO); musí být na začátku řádku
FOR 
iterace: opakuje příkaz pro všechny zadané soubory
GOTO 
skok na návěští (viz výše)
REM 
komentář: jakýkoliv následující text je až do konce řádku ignorován
IF 
podmínka, umožňuje větvení programu
CALL 
volání podporogramu v podobě jiné dávky; po vykonání pokračuje následujícím příkazem
EXIT 
ukončení COMMAD.COM a návrat do programu, který ho spustil; používá se k ukončení dávky
SHIFT 
posunutí všech parametrů z příkazového řádku o jednu pozici vlevo (tj. %0 bude %1, %1 bude %2 atd.)

Proměnné

Dávkové soubory pro COMMAND.COM mají čtyři typy proměnných:

  1. ERRORLEVEL - obsahuje návratový kód posledního spuštěného programu (celé číslo mezi 0 a 255). Většina programů má své konvence návratových kódů (například 0 pro úspěšné ukončení). Některé programy návratový kó nenastavují, takže v proměnné zůstane předcházející hodnota. Hodnotu ERRORLEVEL lze testovat pomocí podmínky IF.
  2. proměnné prostředí - odkazuje se na ně pomocí formy %VARIABLE% a obsahují hodnotu zadanou příkazem SET. Většina verzí COMMAND.COM expanduje proměnné pouze v dávkovém režimu.
  3. parametry z příkazového řádku - mají tvar %0, %1...%9 a obsahují název programu a jeho prvních 9 parametrů z příkazového řádku předané skriptu (tj. spuštěním "skript.bat jedna 2" obsahuje %0 "skript.bat", %1 obsahuje "jedna" a %2 obsahuje "2"). Parametry za devátým mohou být zpřístupněny pomocí příkazu SHIFT.
  4. proměnné příkazu FOR - používají se ve smyčkách a mají v dávkách formát %%a. Tyto proměnné jsou definovány pouze uvnitř smyčky FOR a obsahují postupně všechny definované hodnoty.

Přesměrování a roury

Přesměrování standardních proudů je v DOSu omezené. Protože je DOS jednoúlohový systém, je roura realizována sekvenčním (postupným) spuštěním příkazů, přičemž data se uchovávají v dočasném souboru. COMMAND.COM neposkytuje podporu pro práci se standardním chybovým výstupem. Přesměrování si řídí každý program sám, takže je funkční jen u některých příkazů (na rozdíl od unixových shellů, kde přesměrování řídí sám shell a programy je samy nezajišťují).

příkaz < filename 
přesměrování standardního vstupu příkazu na vstup ze souboru nebo zařízení
příkaz > filename 
přesměrování standardního výstupu příkazu; pokud cíl existuje, je přepsán
příkaz >> filename 
přesměrování standardního výstupu příkazu; pokud cíl existuje, je přidán za jeho konec
příkaz1 | příkaz2 
roura ze standardního výstupu příkaz1 do vstupu příkaz2

Chyby a omezení

Délka příkazového řádku je omezena na 128 znaků. Po provedení příkazu vždy vrací pravdu (0).

Kulturní odkazy

Zpráva "Loading COMMAND.COM" je zobrazena v na průhledu Terminátora T-800 a v interním zobrazení RoboCopa, když se restartuje.

The COMMAND.COM je pozice autority v kresleném seriálu ReBoot.

command.com je website s obrázkem promptu, kde je spuštěn příkaz "DIR". Je to však pouze trik, který má uživatele přesvědčit, že je zobrazován obsah jeho disku. Ve výstupu příkazu je však chyba, protože adresáře . a .. nejsou při zobrazení kořenového adresáře vypisovány.

Související články

References

  1. dokumentováno v SDK a MS KB článku

Externí odkazy