Hurá! Úspěšně jsme se prokousali k dávkám. Dávka by se dala specifikovat jako sled jednotlivých příkazů DOSu, které společně tvoří celek, který má za úkol provést určitý sled úloh nebo jenom jednu úlohu. Nejjednodušší dávky jsou vlastně jenom několik příkazů jdoucích za sebou uložených v souboru s příponou BAT
. Ty složitější už obsahují podmínky a návěstí, takže psaní dávek by se dalo přirovnat k jednoduchému programovacímu jazyku.
Jak a v čem tvořit dávky?
Teď budu předpokládat, že dávky už umíte a že jenom chcete, aby šli spustit. Nejjednodušším způsobem jak vytvořit dávku je napsat ji v Notepadu nebo v jiném textovém editoru (bez formátovacích znaků) a uložit soubor s příponou .bat Radši to ještě trochu upřesním. Pokud budete chtít vytvořit dávku v poznámkovém bloku zvolte možnost Soubor -> Uložit -> Uložit jako typ: Všechny soubory -> Název souboru: neco.bat. Kódování a ostatní možnosti můžete ponechat. Další možností, kde tvořit dávky jsou různé programátorské editory, které dokáží zvýraznit syntax dávkových souborů. Jedním takovým je například CodePad.
Proměnné
Proměnná je pojmenované místo v paměti, které může uchovávat určitou informaci (číslo, řetězec) se kterou pak můžeme dále pracovat. Před a za každou DOSovskou proměnnou musí být znak %
. Zde je jednoduchý příklad dávky, která pouze vypíše na obrazovku “Ahoj” a počká na stisk klávesy.
@echo off set pozdrav=Ahoj echo %pozdrav% pause
Deklarace proměnné
Proměnná se deklaruje příkazem SET
. Tento příkaz je něco jako var
v JavaScriptu. Nejdříve napíšete SET, následuje název proměnné, rovnítko a nakonec hodnota. Hodnota může být číslo, řetězec a nebo rovněž proměnná. Existují proměnné, které si nastavuje sám cmd (repektive Windows). Seznam těchto proměnných získáte příkazem SET bez parametrůe. Pokud umíte trochu anglicky, tak z názvu zjistíte, co která proměnná dělá.
%cd% | Vypíše cestu k aktuální složce. |
%date% | Obsahuje aktuální datum. |
%time% | aktuální čas |
%random% | Vygeneruje náhodné číslo. |
%username% | Obsahuje jméno přihlášeného uživatele. |
%windir%, %temp% | První obsahuje cestu k instalaci Windows což se dá snadno zneužít a druhá obsahuje cestu k adresáři temp. |
%path% | Obsahuje složky, které se prohledávají po zadání příkazu. |
Číselné operace s proměnnými
Pomocí dávek můžete velké množství číselných operací. Zde jsou operace s operátory:
- + (plus)
- – (mínus)
- /(děleno)
- * (násob)
- % (modulo – zbytek po dělení)
- ^ (XOR)
- | (OR)
- & (AND)
- << (bitový posun vlevo)
- >> (bitový posun vpravo)
Vždy, když budete dělat nějaké početní operace tak musíte dát o nich příkazovému řádku vědět napsáním příkazu set /a
. Dále doporučuji dát celý početní výraz do uvozovek.
REM a = 2; b = 10 set /a "c=a+b" výsledek je 12 set /a "c=a-b" výsledek je -8 set /a "c=a*b" výsledek je 20 set /a "c=(a+b*10)*(13+b)" výsledek je 2346
Textové operace s proměnnými
Možná vás napadla otázka: “Když můžu do proměnných dávat řetězce tak s nima taky musí umět cmd pracovat?” Samozřejmě, že máte pravdu. Nejlépe se to vysvětlí na příkladu. Mám slovo: LOKOMOTIVA. Toto slovo je v proměnné %slovo%.
Příkaz | Funkce | Výsledek |
---|---|---|
%slovo:~2% | Přeskočí první dva znaky | KOMOTIVA |
%slovo:~-6% | Bude použito posledních šest znaků | MOTIVA |
%slovo:~0,-2% | Nebudou použity poslední dva znaky. | LOKOMOTI |
%slovo:O=a% | Všechny písmena O budou nahrazeny a. | LaKaMaTIVA |
%slovo:O=% | Všechny písmena O budou vypuštěna | LKMTIVA |