3. díl - Proměnné a matematické operace v Batchi

Ostatní jazyky Příkazový řádek a dávkové soubory 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.

Výpis proměnné v Batch

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.

Papoušek v Batchi

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 :-).

Zdvojnásobovač v Batchi

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\Dani­el\AppData\Ro­aming
Program Files %programfiles% C:\Program Files
Domovský oddíl %homedrive% C:
Architektura procesoru %processor_ar­chitecture% 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í.

Proměnné prostředí v Batch

 

Stáhnout

Staženo 118x (999 B)
Aplikace je včetně zdrojových kódů v jazyce Batch

 

  Aktivity (1)

Článek pro vás napsal Daniel Vítek
Avatar
Primárně PHP programátor, rád si hraje s Arduinem a píše články do sekce Batch.

Jak se ti líbí článek?
Celkem (13 hlasů) :
4.923084.923084.923084.923084.92308


 


Miniatura
Všechny články v sekci
Příkazový řádek a dávkové soubory
Miniatura
Následující článek
Cvičení k 3. lekci Batche

 

 

Komentáře
Zobrazit starší komentáře (3)

Avatar
jargry
Člen
Avatar
jargry:

Ano cykly existují, podívej se na seznam příkazů http://www.samuraj-cz.com/…azy-windows/#…

 
Odpovědět 23.2.2015 18:00
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Daniel Vítek:

Existují, pozděj na to budu psát tutoriál. Až bude trochu času :`

 
Odpovědět 23.2.2015 20:35
Avatar
p.byrouti
Člen
Avatar
p.byrouti:

Super tutoriál bavím se u toho skvěle popsané. :)

 
Odpovědět 15.5.2015 17:52
Avatar
Dominik Lev
Člen
Avatar
Dominik Lev:

Jaký je příkaz k tomu aby mi to nepsalo: Press any key to continue.. ??

 
Odpovědět 23. ledna 9:23
Avatar
Tomáš Brůna
Redaktor
Avatar
Odpovědět 23. ledna 9:46
Lepší být šprt než blbec :)
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Tomáš Brůna
Daniel Vítek:

Ne, to je špatně.

>> slouží k přesměrování výstupu. V tomto případě to přesměruje do souboru null, který se vytvoří v aktuální složce.

Správně to je takto:

pause > nul
případně
pause >> nul
 
Odpovědět  +1 23. ledna 11:05
Avatar
Tomáš Brůna
Redaktor
Avatar
Odpovídá na Daniel Vítek
Tomáš Brůna:

Nevím, mě funguje i

pause > n
:D
Odpovědět 23. ledna 11:41
Lepší být šprt než blbec :)
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Tomáš Brůna
Daniel Vítek:

Přečti si co jsem napsal. Já nepsal, že to nefunguje.

 
Odpovědět  +1 23. ledna 12:40
Avatar
Tomáš Brůna
Redaktor
Avatar
Odpovídá na Daniel Vítek
Tomáš Brůna:

já vím :)
Myslel jsem, pokud myslíš to "null" tak jsem se přepsal. Java na mě nechává následky :D

Odpovědět 23. ledna 12:46
Lepší být šprt než blbec :)
Avatar
Martin5001
Člen
Avatar
Martin5001:

Bylo by možné použít v batchi nějaký konfigurační soubor pro ukládání nastavení?
Představuji si to takto:
:zacatek
@echo off
color 2B // nějaká výchozí barva
color %barva% // barva zvolená v nastavení
:nastaveni
set /p barva=Zadej barvu (např.: 1C):
goto start // vrátí se na začátek a uplatní nastavení
Tohle funguje ale chtěl bych aby se mi zvolená barva uložila do souboru config.txt a použila se při každém spuštění aplikace.
Děkuji za rady.

Editováno 10. května 16:04
 
Odpovědět 10. května 16:04
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 13. Zobrazit vše