Seznam příkazů DOSu a DOSBoxu
Na této stránce najdete seznam nejdůležitějších příkazu DOSu, respektive DOSBoxu.
Pokud jste uživatelé Linuxu, asi se budete hodně divit, jak málo toho příkazy DOSu umí, v porovnání s Linuxovými bratříčky. Ale v 80. létech 20 století si stím šlo docela dobře vystačit. Výhoda je, že nemusíte studovat tak dlouhou nápovědu, jako bývá v manuálových stránkách na Linuxu :-).
Příkazy jsou seřazeny podle toho, jak by jste se je měli postupně učit používat v DOSBoxu. Tato stránka je součástí stránky o příkazech DOSu a DOSBoxu.
Další informace o příkazech DOSu najdete na computerhope.com/cmd.htm. Příkazy dostupné ve Widows jsou popsané na http://technet.microsoft.com/.
HELP
Příkaz help v DOSBoxu vypíše seznam příkazů se stručným popisem toho, co příkaz dělá.
help /all vypíše všechny příkazy (teda všechny úplně né,
chybí tam například mount …).
Nápovědu k jednotlivým příkazům získáte tak, že je spustíte s parametrem
/?, tj. například help /?.
REM
Příkaz rem slouží ke vkládání komentářů do dávkových souborů.
Všechno co napíšete za rem je interpretem příkazů (DOSem)
ignorováno.
C:>
Všiměte si, že spuštěný příkaz rem v konzoli neudělal vůbec nic,
což je přesně to, co měl udělat.
VER
Příkaz ver vypíše verzi DOSu, kterou používáte.
Copyright (c) 2009 Microsoft Corporation. Všechna práva vyhrazena.
C:\Users\Petr>ver
Microsoft Windows [Verze 6.1.7601]
C:\Users\Petr>
V příkladu je zobrazen výstup programu cmd ve Windows 7 po
spuštění (verze a copyright) a dále výstup příkazu ver.
CLS
Příkaz cls smaže obrazovku (DOSového okna).
Může se hodit ve skriptech, kdy chcete na konci skriptu smazat obrazovku
a poté vypsat nějakou důležitou hlášku pro uživatele (je tak větší šance, že
si jí všimne, když zůstane na obrazovce jediná). Nebo se spouštěním
tohoto příkazu můžete bavit za dlouhých zimních večerů :D.
EXIT
Příkaz exit ukončí interpret příkazů (nebo dávkový soubor,
do kterého jej zapíšete).
Pokud máte otevřené okno s programem cmd nebo DOSBoxu,
příkaz exit jej uzavře. Pokud ale máte spuštěný počítač s
DOSem, tak nečekejte že exit počítač vypne. Počitače s
DOSem se vypínají tlačítkem „power“ na skříni. (Jaký to barbarský zvyk!).
ECHO
Příkaz echo vypíše své argumenty na obrazovku.
Můžte si ho samozřejmě vyzkoušet v konzoli, ale své uplatnění
bude mít spíše v dávkových souborech, nebo v sekci
[autoexec].
Příkaz echo můžete také použit pro zapnutí/vypnutí
zobrazování prováděných příkazů (vypnutí provádění příkazů se hodí
znovu spíše v dávkových souborech).
Hello World
C:\Users\Petr>echo /?
Zobrazí zprávy nebo zapíná a vypíná zobrazování prováděných
příkazů.
ECHO [ON | OFF]
ECHO [zpráva]
Příkaz ECHO bez parametrů vypíše aktuální nastavení zobrazování.
C:\Users\Petr>echo off
echo jupi
jupi
echo on
C:\Users\Petr>
DIR
Příkaz dir slouží k vypsání obsahu adresáře. Jeho výstup sedá ovlivnit
poměrně hodně parametry, takže si určitě prostudujte dir /?.
Příkazu můžete zadat jako parametr adresář (nebo i jen soubor), který chcete vypsat, jako absolutní (začínající písmenem jednotky) nebo relativní cestu.
Můžete použít i tzv. wildcards
(česky někdy překládáno jako žolíky).
Wildcards jsou znaky se speciálním významem. Například „*“ znamená
libovolný řetězec.
C:\>dir Games
Svazek v jednotce C je Windows7_OS.
Sériové číslo svazku je E663-EC47.
Výpis adresáře C:\Games
20.07.2012 22:54 <DIR> .
20.07.2012 22:54 <DIR> ..
13.04.2013 00:11 <DIR> World_of_Tanks
25.07.2012 18:46 <DIR> z
Souborů: 0, Bajtů: 0
Adresářů: 4, Volných bajtů: 53 227 888 640
C:\>dir c:\Games
Svazek v jednotce C je Windows7_OS.
Sériové číslo svazku je E663-EC47.
Výpis adresáře c:\Games
20.07.2012 22:54 <DIR> .
20.07.2012 22:54 <DIR> ..
13.04.2013 00:11 <DIR> World_of_Tanks
25.07.2012 18:46 <DIR> z
Souborů: 0, Bajtů: 0
Adresářů: 4, Volných bajtů: 53 227 888 640
C:\>dir Games\z\*.bat
Svazek v jednotce C je Windows7_OS.
Sériové číslo svazku je E663-EC47.
Výpis adresáře C:\Games\z
03.07.2002 08:55 47 Z.BAT
Souborů: 1, Bajtů: 47
Adresářů: 0, Volných bajtů: 53 228 007 424
Všiměte si, že adresáře jsou ve výpisu označeny jako <DIR>.
Na začátku jsou dva speciální adresáře: Tečka „.“
označuje aktuální adresář a dvojtečka „..“ rodičovský adresář
(adresář, ve kterém je umístěn aktuální adresář).
Historicky uměly DOSy pracovat jen s názvý souborů maximální délky osmi znaků
na název a tří znaků na příponu (souborový systém neumožňoval uložit delší
názvy souborů). S příchodem Windows 95 toto omezení padlo, ale kvůli zpětné
kompatibilitě DOS pracoval stále se soubory délky 8+3. Soubor jste tak mohli vidět
pod dvěma různými názvy – pod tím dlouhým z Windows (např. World_of_Tanks),
nebo pod zkráceným WORLD_~1.
DOSBox zobrazuje jen zkrácené názvy souborů a adresářů, interpret příkazů
ve Windows je možné nastavit, jestli chcete zobrazovat dlouhé nebo krátké názvy.
KEYB
Příkaz keyb slouží v DOSBoxu k přepínání kódování klávesnice.
Keyboard layout cz loaded for codepage 852
C:> echo Píšu česky
Píšu česky
C:>keyb us
Keyboard layout us loaded for codepage 852
C:> P9su 4esky
P9su 4esky
V DOSu se tradičně přepínala klávesnice pomocí klávesové zkratky CTRL+ALT+F1
na primární jazyk (angličtinu) a CTRL+ALT+F2 na sekundární jazyk (češtinu).
Pokud pracujete s cmd ve Windows, pak přepínáte jazyk tak jak
jste ve Windows zvyklí (nejspíše Levý ALT+Levý SHIFT).
MOUNT
Příkaz mount slouží k namapování adresáře jako virtuální diskové
jednotky v DOSBoxu (ve „skutečných“ DOSech tento příkaz nehledejte).
Adresář který příkazem mount připojíte se stane kořenovým
adresářem nové virtuální diskové jednotky. Programy spouštěné v DOSBoxu mají
přímý přístup pouze k souborům, které jsou v tako připojených adresářích
(a jejich podadresářích).
Drive C is mounted as local directory C:\Users\Petr\Dosbox
Po provedení příkazu z příkladu najdte všechny soubory v adresáři
C:\Users\Petr\Dosbox dostupné z DOSBoxu v kořenovém adresáři disku C.
Mountovat můžte na jakékoliv písmeno anglické abecedy. (Jen písmeno Z už DOSBox využívá jako interní virtuální jednotku).
Když spustíte mount bez parametrů, vypíše vám všechny přimountované
disky a na jaké adresáře jsou namapovány (včetně obrazů CD namapovaných
příkazem imgmount.
Pro připojení obrazu CD (nebo DVD) jako virtuální jednotky použijte příkaz
imgmount.
Příkaz mount je jeden z horkých kandidátů na vložení do
sekce [autoexec] konfiguračního
souboru DOSBoxu.
C:
Pokud chcete pracovat se soubory na nějakém disku nebo CD, můžete sice vždycky zadávat absolutní cestu (začínající písmenem jednotky), ale to není zrovna nejpohodlnější. Lepší je se změnit aktuální jednotku na tu, se kterou chcete pracovat.
Do aktuální jednotky se přepnete zapsáním písmena jednotky a dvojtečky.
Z:\>C:
C:\GAMES>
Aktuální jednotka, potažmo aktuální adresář, ve kterém se zrovna nacházíte,
je zobrazen jako prompt, tj. text, který se zobrazuje před
místem, kde zadáváte příkazy (např. C:\Games\>).
Všiměte si, že si DOS pamatuje pracovní složku na každém disku. Po přepnutí
na disk vás automaticky vloží do poslední pracovní složky. Pokud by jste
chtěli napsat za jednotku rovnou i adresář, do kterého se chcete přepnout (např.
C:\GAMES>), tak to nefunguje :-).
V DOSBoxu můžete získat seznam všech jednotek příkazem mount.
V DOSu, bohužel, tak snadno výpis všech jednotek nezískáte. Buď můžete
použít program fdisk, pokud je dostupný (To je program, který
se používá na formátování disku. Tak opatrně s ním, ať si všechno nesmažete!),
nebo třeba Dos Navigátor,
který vám vypíše jména diskových mechanik v
levém dolním rohu každého panelu s výpisem souborů. Na obrázku vidíte
[C D Z *]. Kliknutím myší na písmeno disku se přepnete
na onen disk.
MKDIR
Příkaz MKDIR vytvoří nový adresář. Některé verze DOSu umí vytvořit
více adresářů a podadresářů najednou (pokud předáte příkazu MKDIR
správný parametr, zkuste MKDIR /? pro více informací).
V DOSBoxu si budete muset vystačit s jedním vytvořeným adresářem na jeden příkaz.
Unable to make: dir1\dir2.
C:\>mkdir dir1
C:\>mkdir dir1\dir2
První pokus v příkladu nevyšel, druhý a třetí už správně vytvořily adresář
dir1 a v něm podadresář dir2.
RMDIR
Příkaz rmdir maže adresář, ale jen v případě, že je prázdný.
Pokud chcete smazat adresář i se všemi soubory, musíte příkazu předat
správný parametr, který zjistíte z nápovědy rmdir /?.
DOSBox neumí mazat adresáře rekurizvně, takže dokáže mazat jen prázdné
adresáře (na to se vám může hodit například program Dos Navigátor).
Unable to remove: DIR1.
C:\>rmdir DIR1\DIR2
C:\>rmdir DIR1
První pokus o mazání adresáře se nezdařil, protože v adresáři DIR1
byl adresář DIR2. Druhý a třetí pokus o mazání byl úspěšný.
CD
Příkaz cd, nebo též chdir neboli „change directory“
slouží ke změně aktuálního (pracovního) adresáře.
Příkazem cd můžete měnit aktuální adresář na libovolné diskové
jednotce, ale tím se na jednotku nepřepnete. K tomu musíte použít
příkaz c:.
C:\Games>cd ..
C:\>z:
Z:\>cd C:\Games
Z:\>c:
C:\Games>
cd hrát, pozor v DOSBoxu
na bug 390.
Cestu můžete příkazu cd zadávat buďto absolutně, tj. začínáte
písmenem jednotky a dvojtečkou, nebo relativně, tj. k vaší cestě se na
začátek automaticky „domyslí“ aktuální (pracovní) adresář.
Pro navigaci o úroveň výše můžete použít dvojtečku „..“.
Aktuální (pracovní) adresář vidíte v promptu (to je ta část řádky, která je před místem, kde zapisujete příkazy).
IMGMOUNT
Příkaz imgmount slouží k připojení obrazu disku jako
virtuálního disku v DOSBoxu. Můžete připojit obraz diskety (floppy),
CD nebo DVD (iso) nebo harddisku (hdd). Nejčastěji budete příkaz používat
pro připojení obrazu CD.
Obraz CD je, zjednodušeně řečeno, kopie CD jedna ku jedné. Nejedná se jen o zkopírování souborů z CD na disk, ale celého formátu CD (včetně souborového systému CD, jeho popisků atd) do jednoho jediného souboru. Obraz CD sloužil především jako mezikrok při vypalování, když jste měli k dispozici jen jednu vypalovačku – nejdříve jste si vytvořili ze zdrojového CD obraz a ten jste pak následně vypálili na nové prázdné CD.
Obraz CD/DVD používá v naprosté většině případů formát ISO.
Obraz CD si tedy můžete vytvořit pomocí vašeho oblíbeného vypalovacího programu, nebo jej můžete stáhnout z netu (například hra Command & Conquer se stahuje jako obraz CD).
Připojení obrazu CD namísto připojení CD-ROMu jako adresáře příkazem
mount má své výhody. Jednak máte
obraz CD na disku v PC, takže jej nemusíte vkládat do CD-ROMu (přístup
k datům je pak taky samozřejmě rychlejší) a druhak některé hry vyžadují
přítomnost CD jednotky, protože kromě souborů z ní čtou sériové čísla CD,
bez kterých se odmítnou spustit (ochrana proti pirátství).
Při „mountování“ obrazu musíte uvést jeho formát (pro CD/DVD je to ISO). CD/DVD mechaniky je zvykem označovat písmeny E, F … (Některé staré programy dokonce vyžadují, aby byl CD-ROM připojen na písmeně E). Cesta k souboru obrazu je absolutní cesta z Windows/Linuxu, ne z DOSBoxu (kdyby jste si náhodou adresář s obrazem CD přimountovali, tak si to nepleťte).
Po té vší teorii, co jsem napsal, je příkaz imgmount až překvapivě
jednoduchý:
Příkaz imgmount je jeden z horkých kandidátů na vložení do
sekce [autoexec] konfiguračního
souboru DOSBoxu.
Další podrobnosti o příkazu imgmount se dočtete
na oficiální stránce DOSBoxu o imgmount.
COPY
Příkaz copy je obzvláště vypečený. Jak už název vypovídá,
slouží ke kopírování souborů, ale jeho chování je poněkud svérázné (zvláště
linuxový uživatelé budou rozčarováni).
Upřímě vám doporučuji, nezkoušejte použít příkaz copy
na kopírování více než jednoho souboru (adresářů) a raději kopírujte vše v Linuxu
nebo Windows, jak jste byli doteď zvyklí, nebo použijte
program Dos Navigátor. Alternativou je také program xcopy,
který však v DOSBoxu nenajdete (v jiných verzích DOSu ano). Ten už zvládá kopírovat
adresáře tak, jak by jste čekali. Určitě si můžete xcopy někde vygooglit, stáhnout
a používat v DOSBoxu, ale DOS Navigátor je na používání určitě příjemější.
Základní použití je jednoduché.
Svazek v jednotce C je Windows7_OS.
Sériové číslo svazku je E663-EC47.
Výpis adresáře c:\Games
14.04.2013 09:44 <DIR> .
14.04.2013 09:44 <DIR> ..
14.04.2013 09:44 <DIR> dir2
14.04.2013 07:40 7 test.rtf
Souborů: 1, Bajtů: 7
Adresářů: 3, Volných bajtů: 52 724 142 080
c:\Games>copy test.rtf test2.rtf
Zkopírované soubory: 1
c:\Games>dir
Svazek v jednotce C je Windows7_OS.
Sériové číslo svazku je E663-EC47.
Výpis adresáře c:\Games
14.04.2013 09:44 <DIR> .
14.04.2013 09:44 <DIR> ..
14.04.2013 09:44 <DIR> dir2
14.04.2013 07:40 7 test.rtf
14.04.2013 07:40 7 test2.rtf
Souborů: 2, Bajtů: 14
Adresářů: 3, Volných bajtů: 52 724 142 080
c:\Games>copy test2.rtf dir2
Zkopírované soubory: 1
Zatím všechno dobrý. Soubor test.rtf se zkopíroval do souboru
test2.rtf a pak se soubor test2.rtf zkopíroval do adresáře
dir2.
Teď si představte, že chcete zkopírovat adresář
dir2 pod nový název dir3.
dir2\test2.rtf
Zkopírované soubory: 1
c:\Games>dir
Svazek v jednotce C je Windows7_OS.
Sériové číslo svazku je E663-EC47.
Výpis adresáře c:\Games\games
14.04.2013 09:44 <DIR> .
14.04.2013 09:44 <DIR> ..
14.04.2013 09:44 <DIR> dir2
14.04.2013 09:44 8 dir3
14.04.2013 07:40 7 test.rtf
14.04.2013 07:40 7 test2.rtf
Souborů: 3, Bajtů: 22
Adresářů: 3, Volných bajtů: 52 724 170 752
Vydíte dobře co se stalo? Příkaz copy nezkopíroval adresář
dir2, ale soubor dir2/test2.rtf
zkopíroval do souboru dir3!
RENAME
Příkaz rename přejmenovává soubor. Jako parametry mu předáte
jen starý název (může být absolutní cesta) a nový název (pouze název souboru).
MS-DOS příkaz rename neumí přesouvat soubory z adrsáře do adresáře. K
tomu slouží příkaz move. V DOSBoxu příkaz
rename umí přesouvat soubory i mezi adresáři, takže v něm
pro změnu chybí move.
Svazek v jednotce C je Windows7_OS.
Sériové číslo svazku je E663-EC47.
Výpis adresáře C:\Games
14.04.2013 07:57 <DIR> .
14.04.2013 07:57 <DIR> ..
14.04.2013 07:40 7 test.rtf
Souborů: 1, Bajtů: 7
Adresářů: 2, Volných bajtů: 52 730 470 400
C:\>rename Games\test.rtf novy_naz.rtf
C:\>dir Games
Svazek v jednotce C je Windows7_OS.
Sériové číslo svazku je E663-EC47.
Výpis adresáře C:\Games
14.04.2013 07:58 <DIR> .
14.04.2013 07:58 <DIR> ..
14.04.2013 07:40 7 novy_naz.rtf
Souborů: 1, Bajtů: 7
Adresářů: 2, Volných bajtů: 52 730 470 400
MOVE
Příkaz move slouží k přesunu souborů a adresářů z adresáře
do adresáře, nebo k jejich přejmenování. V DOSBoxu příkaz move není,
ale můžete místo něj použít příkaz rename.
Svazek v jednotce C je Windows7_OS.
Sériové číslo svazku je E663-EC47.
Výpis adresáře c:\Games
14.04.2013 08:17 <DIR> .
14.04.2013 08:17 <DIR> ..
14.04.2013 08:17 <DIR> dir1
14.04.2013 07:40 7 test.rtf
Souborů: 1, Bajtů: 7
Adresářů: 3, Volných bajtů: 52 731 228 160
c:\Games>move test.rtf dir1
Přesunuté soubory: 1
c:\Games>move dir1\test.rtf dir1\novy_naz.rtf
Přesunuté soubory: 1
c:\Games>move dir1 dir2
Přesunuté adresáře: 1
c:\Games>dir dir2
Svazek v jednotce C je Windows7_OS.
Sériové číslo svazku je E663-EC47.
Výpis adresáře c:\Games\dir2
14.04.2013 08:18 <DIR> .
14.04.2013 08:18 <DIR> ..
14.04.2013 07:40 7 novy_naz.rtf
Souborů: 1, Bajtů: 7
Adresářů: 2, Volných bajtů: 52 731 228 160
DEL
Příkaz del maže soubory. Můžete jej použít s „žolíky“,
(viz příkaz dir, kde jsou žolíci popsány).
Všechny soubory, které budou odpovídat argumentům příkazu del budou smazány.
V DOSBoxu si příkaz del neporadí s adresáři. Nevypíše ani
žádnou chybu, prostě je nesmaže. V programu cmd se vás
del zeptá, zda chcete vážně smazat celý adresář. Chování
del je prostě závyslé verze od verze, takže si jej vyzkoušejte
a nezapomeňte použít del /?.
Svazek v jednotce C je Windows7_OS.
Sériové číslo svazku je E663-EC47.
Výpis adresáře C:\Games
14.04.2013 07:42 <DIR> .
14.04.2013 07:42 <DIR> ..
14.04.2013 07:40 7 test.rtf
14.04.2013 07:42 0 test1.txt
14.04.2013 07:42 0 test2.txt
Souborů: 3, Bajtů: 7
Adresářů: 2, Volných bajtů: 52 732 854 272
C:\Games>del *.txt
C:\Games>dir
Svazek v jednotce C je Windows7_OS.
Sériové číslo svazku je E663-EC47.
Výpis adresáře C:\Games
14.04.2013 07:42 <DIR> .
14.04.2013 07:42 <DIR> ..
14.04.2013 07:40 7 test.rtf
Souborů: 1, Bajtů: 7
Adresářů: 2, Volných bajtů: 52 732 854 272
C:\Games>
SET
Příkaz set slouží ke změně nebo výpisu
proměnné prostředí (v tomto odstavci najdete
ukázku použití příkazu set).
Změna není trvalá, po ukončení interpretu příkazů (DOSu) se nikam
neuloží. Proto je vhodné dávat příkazy set do
dávkového souboru autoexec.bat nebo do sekce
[autoexec] konfiguračního
souboru DOSBoxu.
Příkaz set bez použití parametrů vypíše všechny proměnné
prostředí a jejich hodnoty.
PAUSE
Příkaz pause vypíše Pokračujte stisknutím libovolné klávesy…
(nebo anglicky Press any key to continue. – to pak uživatelé hledají
klávesu s nápisem any :-) a čeká až stisknete libovolnou klávesu.
Tento příkaz se hodí například při psaní dávkových souborů, když potřebujete na chvilku přerušit běh dávkového souboru, aby si uživatel mohl přečíst co jste mu vypsali na obrazovku.
Pokračujte stisknutím libovolné klávesy...
C:\Users\Petr>