Lekce 3 - Proměnné a matematické operace v Batchi
Z minulého tutoriálu umíme kromě změny barviček vypisovat text. No jo, ale to nám skoro k ničemu není. Co by to bylo za program, pokud by pořád jen něco vykládal? V tomto tutoriálu se naučíme vytvářet proměnné.
Proměnné
Pojďme se shodnout na tom, co je to proměnná (programátoři mi teď jistě odpustí zbytečné vysvětlování). Určitě znáte z matematiky proměnnou (např. x), do které jsme si mohli uložit nějakou hodnotu, nejčastěji číslo. Proměnná je v informatice naprosto to samé - je to místo v paměti počítače, kam si můžeme uložit nějaká data (jméno uživatele, aktuální čas nebo poloměr kruhu pro výpočet jeho obsahu). Toto místo má podle typu proměnné také vyhrazenou určitou velikost, kterou proměnná nesmí přesáhnout.
Proměnná má vždy nějaký datový typ, může to být číslo, znak, text a podobně, záleží na tom, k čemu ji chceme používat. Většinou musíme před prací s proměnnou tuto proměnnou nejdříve tzv. deklarovat, čili říci jazyku jak se bude jmenovat. Jazyk ji v paměti založí a teprve potom s ní můžeme pracovat.
Program vypisující proměnnou
Založte si nový program, který se bude jmenovat vypis.bat. Vložíme do něj základní strukturu a titulek nastavíme na „Vypis promenne“.
@echo off title Vypis promenne pause
Kód budeme nyní psát do mezery mezi title a pause. Proměnnou můžeme vytvořit pomocí příkazu set. Přidejme následující kód.
set web=ITnetwork.cz set autor=193
Dobrá, proměnnou bychom měli vytvořenou. Pokud program spustíme, na první pohled se nic nebude dít. Chtělo by to něco, kde proměnnou vypíšeme. Proměnnou lze vypsat pomocí, nám již známého, příkazu echo - jen před a za název proměnné přidáme znak procenta. Pod řádek s nastavením proměnné vložte tento řádek.
echo Zdroj informaci %web%, autor clanku %web%/portfolio/%autor%
Pokud nyní program spustíte, vypíše nám odkaz na web Itnetwork a odkaz na mé portfolio.

Ale pro uživatele to pořád není nic zajímavého, pořád vidí pouze výstup. Pojďme si vytvořit nový program, který bude zpracovávat vstup od uživatele.
Program Papoušek
Napíšeme program papoušek, který bude dvakrát opakovat to, co uživatel napsal. Založte si soubor s názvem papousek.bat a vložte do něj základní strukturu. Načíst vstup od uživatele můžeme pomocí opět pomocí příkazu set. Tentokrát k němu ale přidáme přepínač /p. Za rovnítko můžeme vložit nějaký text, který se zobrazí u vstupu. Není to ale povinné.
Nejprve se uživateli, jako každý slušný papoušek, představíme a poté požádáme, aby něco napsal.
echo Ahoj, jsem virtualni papousek Lora, rad opakuji! set /p opakuj=Napis mi neco: echo.
Dobrá, nyní máme v proměnné načtenou hodnotu od uživatele. Jelikož vytváříme program, který má opakovat, musíme také napsat nějaký výstup.
echo %opakuj%, %opakuj%!
Na konec ještě vložíme příkaz pause se skrytým textem, aby si uživatel mohl prohlédnout výstup. Program uložíme a spustíme.

Program Zdvojnásobovač
Vytvoříme program, který si od uživatele vytáhne číslo a vypíše mu jeho dvojnásobek. Počítání v Batchi probíhá opět pomocí příkazu set, ale tentokrát s přepínačem /A. Založíme si nový soubor, který pojmenujeme dvojnasobek.bat a vložíme do něj základní strukturu. Poté si načteme číslo do proměnné %cislo% a v proměnné %vysledek% jej zdvojnásobíme. Nakonec uživateli vypíšeme výsledek.
set /p cislo=Zadej cislo: set /a vysledek=%cislo%*2 echo Dvojnasobek je %vysledek%
Program si uložte a zkuste jej spustit. Program je také „blbuvzdorný“.
Zkuste si do vstupu napsat nějaké slovo nebo písmeno – program vypíše
nulu .

Jednoduchá kalkulačka
Takže počítat již umíme. Co kdybychom si vytvořili jednoduchou kalkulačku v Batchi? Bude opravdu velmi jednoduchá. Na vstupu dostaneme dvě čísla, program poté vypíše výsledky jejich součtu, rozdílu, součinu a podílu. Založte si nový soubor s názvem kalkulacka.bat, do kterého vložíte základní strukturu.
Nejprve uživateli představíme aplikaci, poté si vyžádáme obě čísla.
echo Vitej v kalkulacce. Kdyz mi zadas 2 cisla, spocitam ti spoustu věci! set /p prvni=Zadej prvni cislo: set /p druhe=Zadej druhe cislo: echo. echo Dekuji za zadani cisel. :-)
Dále si vytvoříme proměnné, do kterých budeme ukládat výsledky jednotlivých operací.
set /a soucet=%prvni%+%druhe% set /a rozdil=%prvni%-%druhe% set /a soucin=%prvni%*%druhe% set /a podil =%prvni%/%druhe%
Výborně, nyní máme výsledky operací uložené v proměnných. Nesmíme zapomenout na tu nejdůležitější věc – vypsat je uživateli.
echo. echo %prvni%+%druhe% je %soucet% echo %prvni%-%druhe% je %rozdil% echo %prvni%*%druhe% je %soucin% echo %prvni%/%druhe% je %podil%
Systémové proměnné
Systém nám již připravil nějaké proměnné. Většinou obsahují informace o počítači, systému a aktuálním uživateli. Jejich seznam můžeme najít, když do příkazového řádku zadáme příkaz „set“. Mezi nejzajímavější proměnné patří například:
Popis | Proměnná | Příklad výstupu |
Aktuální datum | %date% | út 17. 02. 2015 |
Aktuální čas | %time% | 14:28:12,53 |
Uživatelské jméno aktuálního uživatele | %username% | Daniel |
Jméno počítače | %computername% | MujPc |
Náhodné číslo od 0 do 32 767 | %random% | 7030 |
Složka Windows | %windir% | C:\WINDOWS |
Složka uživatele | %userprofile% | C:\Users\Daniel |
AppData | %appdata% | C:\Users\Daniel\AppData\Roaming |
Program Files | %programfiles% | C:\Program Files |
Domovský oddíl | %homedrive% | C: |
Architektura procesoru | %processor_architecture% | AMD64 |
Jak jsem již zmínil, tyto proměnné nám připravuje systém. Jelikož je příkazový řádek propojený s operačním systémem, je možné změnit výchozí hodnoty těchto proměnných, případně si přidat vlastní globální proměnné. Zkuste si otevřít Ovládací Panely > Systém > (levé menu) Upřesnit nastavení systému > (záložka) Upřesnit > (tlačítko dole) Proměnné prostředí. Zde lze proměnné upravit, vymazat, případně si vytvořit vlastní.

V následujícím cvičení, Řešené úlohy k 3. lekci Batche, si procvičíme nabyté zkušenosti z předchozích lekcí.
Měl jsi s čímkoli problém? Stáhni si vzorovou aplikaci níže a porovnej ji se svým projektem, chybu tak snadno najdeš.
Stáhnout
Stažením následujícího souboru souhlasíš s licenčními podmínkami
Staženo 439x (999 B)
Aplikace je včetně zdrojových kódů v jazyce Batch