Od dob Windows 95 se grafická část operačního systému zavádí automaticky a s příkazovým řádkem se vůbec nesetkáte, pokud nechcete. Zatímco ve Windows 95, 98 a ME byl program Příkazový řádek jen simulací MS-DOS, ve Windows 2000 a XP se Příkazový řádek spouští voláním programu cmd. I v těchto novějších systémech lze vyvolat program command, který na první pohled může vyvolat zdání, že se jedná týž program jako cmd. Opak je však pravdou, program command je i nadále jen simulací MS-DOS a je tedy vhodný pouze pro staré dosové programy, které např. vyžadují osmipísmenné názvy. V tomto bloku se budeme dále zabývat jen programem cmd, a to jeho verzí, která je dodávána se systémem Windows XP.
Program Příkazový řádek lze snadno spustit z nabídky Start. Ale protože konzolové okno "nezná" myš a našim jediným nástrojem je klávesnice, naučíme se spouštět program stiskem kláves Win + R. Tím vyvoláte dialogové okno Spustit. Zadejte cmd a stiskněte Enter.
Jak ukončit Příkazový řádek? Je to možné stisknutím zavíracího křížku v pravém horním rohu okna, to však provedete násilnou cestou (Windows se vás nebudou ptát, zda máte nějaká neuložená data). Raději tedy ukončujte příkazový řádek zadáním povelu exit bez dalších parametrů.
Chování většiny příkazů, lze ovlivnit použitím tzv. parametrů. Parametry jsou údaje, které se píší za název programu. Často jsou parametry pro přehlednost označeny lomítkem, takové se pak nazývají přepínače. Jednotlivé parametry jsou od sebe většinou oddělovány mezerou - na to je třeba pamatovat v případě, kdy jako parametr uvádíte název souboru, který obsahuje mezery. V takovém případě je potřeba tento název uzavřít do uvozovek. Pamatujte také na to, že mnohdy záleží na pořadí parametrů.
Vrcholem stromové struktury složek je tzv. kořenová složka. Každý oddíl pevného disku nebo jakéhokoli výměnného média obsahuje právě jednu
kořenovou složku, v níž kromě souborů s daty mohou být umístěny i další složky - tedy podsložky kořenové složky. Takto vzniká strom: složky
se dále větví a jako listy si můžeme představit soubory.
Vlastností stromové struktury složek je, že z kořenové složky vede ke každé složce či souboru právě jedna cesta.
V Příkazovém řádku (stejně jako dříve MS-DOS) se k oddělování složek popisujících cestu používá obrácené lomítko (na české klávesnici se píše stiskem pravého Alt následovaného stiskem klávesy Q). Pamatujte, že na velikosti písmen nezáleží. Také nezapomeňte, že kvůli mezerám musíte cestu uzavřít do uvozovek!
Absolutní cesta jednoznačně definuje složku nebo soubor na disku nebo výměnném médiu. Relativní cesty popisují cestu složkami nikoli od kořenové složky jednotky, ale od aktuální složky. Z každé složky totiž vedou cesty do jejích podsložek, ale také pravě jedna cesta do složky nadřazené (výjimkou je kořenová složka).
Nadřazená složka se označuje názvem .. (dvě tečky)
Složka s názvem . (jedna tečka) označuje sebe sama.
Zástupné znaky se používají zejména při operacích, kdy chceme specifikovat více souborů, např. při kopírování, přesouvání nebo mazání.
Při práci se soubory a složkami v Příkazovém řádku je vždy nutné tyto objekty přesně pojmenovat.
Popsat jeden soubor pomocí cesty k němu a jeho názvu není nic složitého. Komplikovanější to bude teprve v okamžiku, kdy budete chtít použit více souborů,
k tomu však můžeme použít tzv. zástupné znaky.
Zápis *.txt tedy odpovídá všem souborům s příponou txt v aktuální složce. Zápisu *.txt se říká maska. Maska může být i komplikovanější,
např. a??.txt odpovídá všem souborům s třípísmenným názvem začínajícím písmenem „a" a příponou txt.
Zástupné symboly lze používat i při zápisu cest. Potom Příkazový řádek vyhodnotí zástupný znak podle první nalezené cesty.
Předpokládejme, že v kořenové složce se nacházejí složky data a datel. Potom příkaz
cd c: \dat*
přejde do první nalezené složky odpovídající masce, a tou bude složka data.
V grafických programech mohou být vstupem data získaná z klávesnice, včetně povelů (šipky), myši či různých periferií (zvuk, obraz).
Vstupem jsou také data z pevného disku, výměnného média či sítě. Výstupem je pak text, grafika na obrazovce či na tiskárně, zvuk,
stejně jako data na HDD, USB klíčence, odeslaná do internetu a další...
V příkazovém řádku je vše jednodušší, výstup standardně probíhá na obrazovku a vstup je přijímán z klávesnice. Na rozdíl od programů v
grafických operačních systémech však lze výchozí vstup a výstup změnit. Výstup programu tedy může směřovat do souboru či vstupem nebudou znaky z klávesnice,
ale data ze souboru. Pro tato přesměrování slouží znaky > a < .
Příkaz dir vypisuje soubory z aktuální složky (podrobněji později) na obrazovku. Pokud však zadáte příkaz
dir > c:\vypis. txt
bude výpis složky zapsán do souboru vypis.txt v rootu disku c: a pokud by soubor vypis.txt existoval, bude bez dotazu přepsán! Do souboru lze i připisovat pomocí dvojitého znaku ">>". Pokud tedy v souboru vypis.txt už existuje nějaký text, potom příkaz dir >> c:\vypis.txt do tohoto souboru výpis složky připíše na konec
Výstup jednoho programu lze ihned předat na vstup programu jiného, stačí je oddělit znakem | (nazýváno 'svislítko', nebo 'roura' z anglického pipe). Právě pojem roura se pro takové předávání dat mezi programy používá, protože přesně vystihuje princip, kdy jeden program chrlí data (např. příkaz dir vypisuje řádky se soubory či složkami), druhý program tato data přijímá ve stejném pořadí (např. program more přijatá data posílá dál za podmínky, že není zaplněna obrazovka).
dir | more
V předchozí kapitole jsme popisovali standardní vstup (klávesnice) a standardní výstup (obrazovka). Klávesnice a obrazovka se v tomto případě nazývají popisovač, přičemž:
Popisovače lze přesměrovávat, ale praktického využití nalezne pouze u přesměrování chybového výstupu, tedy veškerých chybových hlášení programu.
Například následující výpis složky bude zapsán do souboru vypis.txt a případné chyby budou zapsány do souboru chyby.txt.
dir c:\data > vypis.txt 2>chyby.txt
V souvislosti s přesměrováním je dobré znát popisovač s názvem nul. Jeho funkce je jednoduchá: cokoli dostane, to zahodí.
Následující příkaz výpisu nikdy nevypíše chybu, i když složka c:\data nebude existovat.
dir c:\data 2>nul
Popisovač lze také přesměrovat do již existujícího popisovače. K této operaci se používá operátor >&, kde před operátorem je popisovač,
který chceme přesměrovat, za operátorem pak popisovač, kam bude původní přesměrován.
Vypisujeme příkazem dir soubory ze složky c:\data do souboru vypis.txt. Navíc chceme přesměrovat i chybová hlášení v případě,
že složka c:\data neexistuje:
dir c:\data > vypis.txt 2>&1
Operátor > přesměruje standardní výstup (1) do souboru, vyjádření 2>&1 pak chybový výstup pošle do popisovače 1, který ovšem již vede do souboru.
Závěrem kapitoly ještě dodávám, že přesměrování popisovačů se dědí, tzn. pokud přesměrujete popisovače nějakému příkazu a ten vyvolá jiný příkaz,
i nově vyvolaný příkaz bude přesměrováván.
Každý příkaz, který zadáte za výzvu Příkazového řádku, bude zpracován po stisku klávesy Enter. Co se vlastně v počítači po stisku této klávesy odehraje? Nejdříve příkazový řádek zjistí, zda zadaný příkaz zná. Pokud ano, provede jej. Pokud ne, bude zadaný text považovat za název programu. Příkazový řádek nejdříve projde aktuální složku. Pokud byl zadán název programu bez přípony, bude Příkazový řádek zkoušet přípony podle proměnné %PATHEXT%. Ta ve výchozím nastavení obsahuje seznam koncovek programů, což znamená, že se postupně budou dosazovat přípony z následujícího seznamu.
Pokud nebyl nalezen žádný program v aktuální složce, bude načtena proměnná %PATH% obsahující složky, kde se mají hledat programy.
Pro každé takové místo provede Příkazový řádek totéž: nebyla-li zadána přípona, zkouší dosazovat ty, které jsou uloženy v proměnné %PATHEXI%.
Nebyl-li nikde nalezen program odpovídajícího jména, je název považován už definitivně za příkaz.
Příkazový řádek se jej pokusí vyhodnotit a pokud jej zná, provede jej. V jiném případě vypíše chybové hlášení.
Z těchto vlastností logicky vyplývá:
Příkazový řádek má vlastní nápovědu, a to dvojího typu. Vypsanou na žádost parametru /?.
dir /?
Tímto se dozvíte, co příkaz dir dělá a jaké parametry můžete použít pro ovlivnění jeho chování.
Druhou možností nápovědy je příkaz help. Bez dalších parametrů vypíše seznam základních příkazů Příkazové řádky se stručnou charakteristikou.
Aby se vám výpis zobrazoval postupně, použijte příkaz:
help | more
Detailnější nápovědu získáte tak, že za příkaz help zadáte jeho název, např. help dir. Program provede nabídku příkazu, jako byste mu vy sami vnutili parametr /?.
Zajímá-li vás obsah aktuální složky, potom použijte příkaz dir (z anglického directory = adresář). Ve standardním zobrazení bude nejdříve vypsáno
záhlaví (ve dvou řádcích je popsán aktuální diskový oddíl, dále název vypisované složky) a potom jednotlivé soubory a složky.
Sloupce:
Za seznamem souborů a složek bude vypsáno zápatí obsahující informace o počtu vypsaných souborů, složek, velikosti souborů a volném místu na jednotce.
Nejčastější parametry:
dir "cesta ke složce"
Tento příkaz vypíše obsah uvedené složky, může se jednat o cestu relativní i absolutní. Např. dir .. vypíše obsah nadřazené složky, dir Léto vypíše obsah podsložky Léto (pokud taková v aktuální složce existuje)
dir /p
Pozastaví výpis při zaplnění všech řádků. Tento parametr způsobí to, že generování výpisu bude pozastaveno při zaplnění obrazovky a pokračovat se bude až po stisku libovolné klávesy. Univerzálnější je použití přesměrování výstupu do příkazu more (viz dále).
dir /ax
Zařadí nebo omezí soubory ve výpise v závislosti na atributech souboru, které jsou určeny pomocí znaku x. Za něj lze použít jeden nebo více znaků, přičemž:
dir /a -dhs
Vypíše pouze soubory (nikoli složky), a to včetně skrytých a systémových.
Při práci se soubory bude nutné přecházet mezi složkami. Pro změnu aktuální složky použijte příkaz:
cd "cesta ke složce"
Příkaz cd bez parametrů vypíše aktuální složku. Parametr /d změní chování příkazu cd tak, že je možné potom změnit i aktuální diskovou jednotku. Předpokládejme, že aktuální složka je na disku c:, potom vás příkaz:
cd /d d:\data
přepne do této složky. Jelikož příkaz cd může mít pouze jediný přepínač /d, který navíc musí předcházet názvu cesty, není nutné cestu uzavírat do uvozovek, a to ani v případě, kdy cesta obsahuje mezery.
Příkaz "dvojtečka" = změna aktuální jednotky
Tento příkaz má zcela nestandardní podobu, která vychází z dávné historie systému MS-DOS verze 1.0. Protože byl DOS od počátku koncipován jako
zjednodušený Unix a přitom se od něj Microsoft chtěl co nejvíce lišit (snad aby se ubránil nařknutí z plagiátorství), vznikly i takto nesmyslné příkazy
(druhou ukázkou záměrného odlišování se je používání zpětného lomítka pro oddělování složek při zápisu cesty).
Stačí zadat jen písmeno jednotky následované dvojtečkou a dojde k přepnutí aktuální složky na požadované médium.
Takové přepínání má jednu zajímavou vlastnost: aktuální složka je uložena pro každé médium zvlášť a při přepnutí je použita poslední složka požadované
jednotky.
Příkaz more lze v základní funkci použít ke stránkování výpisu. Příkaz bez dalších parametrů přebírá soubory ze vstupu a posílá je na výstup. V okamžiku, kdy je obrazovka zaplněna, zobrazí na posledním řádku — Další — a vyčkává na povel uživatele.
Příkaz more lze navíc i přesměrovat. Například při příkazu more < c:\data.txt bude jako vstup použit soubor data.txt v kořenové složce disku a ten tedy bude vypsán na obrazovku.
Velice jednoduchou funkci vykonává příkaz sort. Pokud není zadáno jinak, přijímá data ze vstupu, vzestupně je třídí a odesílá na výstup. Přímo se nabízí jeho použití v „rourách', např.:
dir /b /s | sort | more
Tímto se provede výpis celých cest všech souborů v podsložkách, který bude seřazený a odstránkovaný příkazem more.
Příkaz sort však může mít další parametry:
Programy příkazového řádku i příkazový řádek samotný používají jako standardní vstup klávesnici a prostřednictvím ní zadaná data.
Aby uživatel věděl, že příkazový řádek od něj očekává vstup, vypisuje tzv. výzvu. Standardně výzva sestává z názvu aktuální složky a znaku větší
Výzvu lze změnit příkazem prompt následovaným textem, který se má vypisovat. V textu lze použít speciální kombinace znaků,
jejich seznam získáte příkazem prompt /?.
Ukážeme si ty nejzajímavější:
prompt $t$h$h$h$h$h$h$s$p$g
Zobrazí čas (pouze hodiny a minuty) následované mezerou, cestou a znakem větší.
prompt $p$g
Tímto se opět vrátíte na původní standardní výzvu.
A když už se zabýváme psaním po obrazovce, pak je tu další příkaz zvaný echo. Při běžné práci zřejmě tuto funkci nepoužijete, hodit se vám bude až v dávkovém zpracování příkazů.
Doskey není ani tak příkaz, jako spíše program, který rozšiřuje možnosti programu Příkazový řádek. Ve Windows XP se spouští automaticky. Jednou z funkcí je možnost vracet se k příkazům zadaným dříve:
Pomocí nástroje doskey lze také vytvářet tzv. makra. Makro sestává ze svého jména a ze své definice. Vše pak funguje tak, že zadáte-li název makra, bude provedena jeho definice. V definici je možné použít parametry $1 až $9, které potom odpovídají zadaným parametrům, případně $* odpovídá všem zadaným parametrům. Je možné použít:
Pojďme opět demonstrovat na příkladech: Řekněme, že často vypisujete složky bez záhlaví, tedy příkazem dir /b.
Nadefinujte makro příkazem:
doskey slozka=dir /b $*
Potom zadáte-li příkaz slozka, můžete použít stejné parametry jako u příkazu dir a přitom vždy bude výpis bez záhlaví.
Příkaz find zpracovává výchozí vstup, vyhledává v něm řetězec a řádky, které řetězec obsahují, posílá na výstup.
Lze tedy například zadat:
dir /b /s | find /i "kniha"
Na obrazovku pak budou vypsány jen ty soubory a složky, které obsahují text kniha, přičemž prohledány budou i podsložky aktuální složky. Parametr /i zajistí,
že příkaz find nebude rozlišovat malá a velká písmena.
Další parametry:
Hledaný text vždy musí být zadán v uvozovkách. Pokud má hledaný text obsahovat uvozovky, je třeba je zadat dvojitě.
Alternativou k příkazu mkdir je md, přičemž název vznikl z anglického make directory. Příkaz vytvoří složku se zadaným názvem, jsou-li zapnuta
rozšíření příkazů, potom vytvoří i všechny nezbytné složky „cestou" k zadané.
Předpokládejme, že se nacházíme ve složce c:\data, kde nejsou žádné další podsložky:
mkdir texty
Vytvoří podsložku texty složky c:\data
mkdir c:\data\textyUčiní totéž, ovšem není nutné mít jako aktuální složku c:\data.
doskey na=mkdir $l$Tcd $1
Pokud potom zadáte např. na jméno, vytvoří se složka jméno a stane se aktuální složkou.
Stejně jako jsme v minulém příkazu složku vytvořili, budeme ji někdy možná chtít smazat. Za tímto účelem můžeme použit příkaz rmdir (případné rd, obojí z anglického remove directory). Parametrem příkazu je opět složka (cesta k ní), která má být smazána. Pokud mazaná složka není prázdná, ke smazání nedojde. Toto chování lze změnit dvěma parametry:
Pokud se pokusíte smazat složku, v níž se nacházíte, operace skončí chybou.
Data je občas nutné kopírovat. Příkaz copy vyžaduje pouze dva parametry: první je cesta ke zdrojovému souboru, druhý je buď cesta do cílové složky nebo přímo cílový soubor (tím lze soubor přejmenovat). Používat lze i další parametry, nejlépe je vše vidět na příkladech. Předpokládejme, že se nacházíme ve složce c:\data, která obsahuje složku texty a také soubory zprava.txt a dopis.txt.
Příkaz xcopy lze použít ke kopírování celých adresářových struktur. Pomocí mnoha parametrů jej lze využít i k zálohování souborů. Prvním povinným parametrem je uvedeni zdrojových souborů, samozřejmě lze použít zástupné znaky. Druhým parametrem může být cíl; pokud nebude uveden, předpokládá se kopírování do aktuální složky. Zadáte-li jako cil název jednoho souboru, potom budou zdrojové soubory spojeny do jednoho - místo zástupných znaků lze použít i syntaxi souborl+soubor2+soubor3...
xcopy *.* c:\data
Pokud existuje složka c:\data, potom zkopíruje všechny soubory z aktuální složky do složky c:\data. Pokud taková složka neexistuje, dotáže se, zda ji vytvořit, nebo zda vytvořit soubor data ve složce c:\ a do něj zkopírovat všechny soubory aktuální složky.
xcopy a: \*. *
Zkopíruje všechny soubory z mechaniky a: do aktuální složky.
Příkaz má mnoho dalších parametrů. Jako vždy se je dozvíte zadáním příkazu xcopy /?.
Tak jako příkaz copy kopíruje, příkaz move přesouvá. Syntaxe je obdobná příkazu copy, ovšem spojování souborů není možné.
move *.txt texty
Přesune všechny soubory s příponou .txt do složky texty.
Chování příkazu rename (nebo také pouze ren) je stejné, jako chování příkazu move v případě, kdy zadáte pouze nové jméno, přičemž jednotka i složka zůstanou zachovány. Nejjednodušší použití je:
rename staréjméno novéjméno
Příkazem del můžete mazat soubory ve složkách nebo i celé složky včetně souborů. Zcela ekvivalentní je příkaz erase. Příkaz maže bez dotazu v případě, že je specifikován jeden soubor. Je-li specifikováno více souborů pomocí zástupných znaků, potom se před operací dotáže.
del c:\data\*.jpg
Vymaže všechny soubory s příponou .jpg ze složky c:\data, před mazáním budete dotázáni.
del c:\data
Vymaže všechny soubory ze složky c:\data, složku však ponechá na svém místě, před mazáním budete dotázáni.
del /q c:\data
Stejné jako předchozí, ale okamžitě bez dotazu.
del /f *
Vymaže všechny soubory v aktuální složce, před mazáním se jednou zeptá. Parametr f způsobí, že smazány budou i soubory s příznakem Pouze pro čtení.
V souborovém systému NTFS obsahuje každý soubor nebo složka informaci o přístupových právech. Zobrazovat a měnit je lze pomocí příkazu cacls soubor.
V této formě bude pouze vypsán seznam přístupových práv.
Rozlišuje se pět základních:
U složek se pak mohou vyskytnout ještě tyto příznaky práv:
Není-li příznak uveden, týkají se práva jen aktuální složky. Příkaz cacls lze použít například takto:
cacls soubor /g uzivatel:x
Pro soubor přidělí uživateli uživatel práva x. Lze použit i zástupné symboly.
cacls soubor /d uživatel
Uživateli uživatel odepře přístup k souboru. Ostatní přístupová práva budou odstraněna!
cacls soubor /e /d uzivatel
Jako předchozí, ale ostatní přístupová práva nebudou ovlivněna.
Pokud budete měnit přístupová práva, je dobré vždy použít parametr /e, aby původní přístupová práva nebyla zapomenuta.
Chcete-li nahradit stávající přístupová práva uživatele, použijte místo parametru /g parametr /p.
Vždy můžete zadat i více uživatelů.
Nevýhodou používání Příkazového řádku se může zdát skutečnost, že je příkazy nutné zadávat z klávesnice, a to pokaždé znovu. Proto existuje možnost dávkového zpracování příkazů. Dávka je obyčejný textový soubor, který obsahuje na jednotlivých řádcích příkazy tak, jako by je postupně zadával uživatel. Pokusme se vytvořit dávku, která vymaže obrazovku, vypíše nápis „Dnes je" a aktuální datum a čas. Bez použití dávky bychom museli zadat tyto příkazy:
@echo off cl s echo Dnes je dáte /t time /t
Nyní vytvořme dávku s názvem dnes.bat - každá dávka musí mít příponu bat (z anglického batch), aby systém věděl, že ji má spustit. Triviální způsob
vytvoření dávky je následující: zadejte příkaz copy con dnes.bat - budeme tedy kopírovat vstup z klávesnice do souboru dnes.bat.
Zadávejte příkazy tak jako výše, každý ukončete klávesou Enter. Až zadáte poslední řádek a stisknete Enter, zadejte znak „konec souboru"
stiskem Ctrl + Z. Na obrazovce se objeví AZ. Stiskněte Enter a zadávání dávky se ukončí.
Nyní stačí zadat pouze příkaz dnes a stisknout Enter. Příkazový řádek podle přípony bat zjistí, že se jedná o dávku, a provede
příkazy na jednotlivých řádcích.
Bylo by silně nepraktické, kdybychom při každé úpravě dávky ji museli smazat a napsat celou znovu. K editování lze samozřejmě použít libovolný textový
editor, který umí ponechat neformátovaný text tak, jak je. Přímo se k tomuto účelu nabízí použiti Poznámkového bloku, ten má ovšem problematické kódování.
Přímočaré řešení se jmenuje prostě edit. Zkuste zadat edit dnes.bat. Editor lze ovládat podobně, jako jsme zvyklí z programů ve Windows.
Příkaz at slouží k naplánovaní provedeni příkazu či spuštění programu na určitý okamžik, případně jeho naplanovaní na pravidelné spouštěni. Vše si ukážeme na přikladu, kdy budeme chtít volat dávku zalohuj.bat uloženou ve složce c:\windows (není tedy nutné zadávat cestu k ní). Tato dávka zkopíruje všechny soubory z vaší složky do jiné složky na druhém pevném disku - provádí tedy zálohu vašich dat.
at
Pouze vypíše seznam naplánovaných úloh
at 6:00 zalohuj.bat
Naplánuje spouštění dávky na 6. hodinu ráno. Jakmile tato doba nastane, bude dávka na pozadí spuštěna (její průběh se však nebude nikde zobrazovat). Následně bude spouštění dávky ze seznamu naplánovaných úloh vymazáno.
at 6:00 /every:po zalohuj.bat
Naplánuje spouštění dávky na každé pondělí v 6 ráno. Opět dávka proběhne na pozadí. Dny v týdnu lze oddělovat čárkou, potom bude spuštění naplánováno pro každý den. Pro dny v týdnu použijte zkratky po (pondělí), st (středa), pa (patek), so (sobota) a ne (neděle). Bohužel zkratky út a čt končí chybou.
at 6:00 /interactive zálohuj.bat
Dávka bude probíhat v popředí a aktuálně přihlášený uživatel uvidí její okno - s takto spuštěným programem bude moci i komunikovat.
at 2 /delete
Naplánovaná úloha číslo 2 bude zrušena. Čísla úloh jsou zobrazena při výpisu pomocí příkazu at bez dalších parametrů.
Příkaz net je komplexní nástroj pro práci se sítí a uživateli počítače. Prvním parametrem je vždy druh operace, další pak závisejí na požadované operaci. Operace lze rozdělit do několika skupin:
Nápovědu k příkazu net lze vypsat pomocí příkazu net help, nápovědu ke konkrétní operaci získáte pomocí příkazu net help operace, tedy např. net help use.