Komentář dávky
Jedinou možností, jak napsat v dávce komentář je příkaz REM. Tento postup je nepohodlný a nepružný, ale bohužel dávkové soubory jiný způsob nenabízejí. S příkazem REM musíte nakládat jako s normálním příkazem (úplně stejně jako s příkazem echo), tzn. že ho budete muset psát na zvláštní řádek. Příkaz REM se snažím užívat co nejméně, protože jeho používáním docílím jedině chauzu v dávce. Jeho využití je snad jedině v poznámkách v záhlaví nebo u komplikovaných operacích.
@echo off REM ---------------------------------------------------------- REM Autor: Michal Blažek REM Název: mujweb.cz/www/dosms REM Činnost programu: snaha naučit uživatele s DOSem REM ---------------------------------------------------------- pause
Příkaz call
Příkaz call volá dávku. Vysvětlení je následující: Představte si, že jste naprogramovali dávku, která má obrovskou velikost (pojmenuji jí davka.bat) a naprogramovali jste další dávku, jejíž funkce je založena na “davka.bat”. Uděláte to, že zkopírujete “davka.bat” s obrovsku velikostí do té menší a vznikne vám gigantická. A teď chcete vytvořit další dávku, která opět využívá dávku “davka.bat” a když ji tam opět nakopírujete, tak vám vzniknou dvě gigantické dávky, které mají skoro stejný obsah (lépe řečeno obě v sobě mají nakopírovanou dávku “davka.bat”). A pro tyto účely právě existuje příkaz call. Pro ty co nepochopili, co jsem se tu snažil názorně vysvětlit to teď zkusím říci po lopatě. Příkaz call spouští dávku, ke které jsme zadali cestu. Pokud patříte mezi typ lidí, kterým se říká hračičkové, tak vás jistě potěší následující příklad a určitě ho budete dále rozvíjet. Příklad, který zde chci ukázat počká na stisk klávesy (1-3) a podle odpovídající klávesy vykoná příkaz a dávka se ukončí pokud stisknete klávesu 9 (tato dávka v podstatě vytváří DOS založený na DOSu). Příkaz 1 je jednoduchý dir
, příkaz 2 je ver
a příkaz 3 je zpráva echo obsahující aktuální datum a čas.
@echo off REM ------------------------------------------------------------ REM Autor: Michal Blažek REM Název: dosnadosu.bat REM Činnost programu: Program počká na stisk klávesy 1-3 a následně ENTER REM a vykonná odpovídající příkaz. Program ukončíte klávesou 9 REM ------------------------------------------------------------ set prikaz1=1 set prikaz2=2 set prikaz3=3 set prikaz4=9 echo Napoveda: echo 1 - Vypise obsah aktualni slozky echo 2 - Vypise verzi systemu Windows echo 3 - Vypise aktualni datum a cas echo 9 - Ukonci program set /p cti=DOS: REM *** Přepínač /p znamená, že se bude číst z obrazovky ** if %cti% EQU %prikaz1% (call prikaz1.bat) else (goto dalsi1) :dalsi1 if %cti% EQU %prikaz2% (call prikaz2.bat) else (goto dalsi2) :dalsi2 if %cti% EQU %prikaz3% (call prikaz3.bat) else (goto konec) :konec echo Preji prijemny den :-) pause
at
Příkaz at
je normálním příkazem DOSu a nepatří do kategorie if, else, goto, … AT naplánuje provedení příkazu nebo dávky. Příkaz AT bez parametrů vypíše seznam naplánovaných úloh. Několik příkladů:
at 15:00 smaz.bat | V 15:00 zavolá dávku smaz.bat a vymaže sama sebe ze seznamu naplánovaných úloh. Dávka proběhne na pozadí a vzhledem k rychlosti prováděných dávek si jí uživatel ani nevšimne. |
at 15:00 every:po smaz.bat | Dávka se vykonná každé pondělí v 15:00. |