Parametre dávkového súboru, volanie dávkového súboru z iného dávkového súboru a Príkazový riadok

V Príkazovom riadku, ak napíšeme dávkový súbor, tento má potom charakter funkcii a procedúr z vyšších programovacích jazykov. Funkcie a procedúry obvykle preberajú parametre, ktoré ďalej spracovávajú a tie ovplyvňujú ich beh. Rovnako je to aj s dávkovými súbormi. Pokiaľ napíšem názov dávkového súboru a za tento názov dám ďalšie parametre, vie dávkový súbor s nimi ďalej pracovať. Parametre sú oddelené medzerami a v dávkovom súbore sa označujú znakmi %0 až %9. Dávkový súbor premennú %10 nepozná. To neznamená, že dávkovému súboru nie je možné predať 10 parametrov a viac. Je to možné, ale k tieto parametre je sa možné adresovať iba pomocou príkazu shift.

Ak v dávkovom súbore napíšeme príkaz shift, tak sa parametre posunú. Teda prvý parameter zmizne a druhý parameter sa posunie na pozíciu toho prvého. Teda v premennej %0 bude hodnota premennej %1 atď. 

Špeciálny charakter má premenná %0, kde sa bez použitia príkazu shift nachádza reťazec, ktorý dávkový súbor vyvolal. Teda názov dávkového súboru a cesta k nemu.

Príklad na príkaz shift je tu:

----------param.bat---------

@echo off 
echo Pred posuvom 
echo 0: %0 
echo 1: %1 
echo 2: %2 
shift 
echo Po posuve 
echo 0: %0 
echo 1: %1 
echo 2: %2
-------------------- 

Po zadaní príkazu param a b c, výstup programu bude vyzerať nasledovne:
Pred posuvom
0: param
1: a
2: b
Po posuve
0: a
1: b
2: c

Volať dávku z inej dávky je možné pomocou príkazu call. Napríklad vo forme
call param.bat

Príkaz call môže obsahovať za názvom volaného dávkového súboru dvojbodku a za ňou názov návestia, na ktoré treba skočiť vo volanom dávkovom súbore. 

Napríklad môžeme mať nasledovný dávkový súbor funkcia.bat

---- funkcia.bat ---
:scitanie
set /a vysledok=%1+%2
goto :eof
:odcitanie
set /a vysledok=%1-%2
goto :eof
:eof
-----------

Potom viem nasledovným spôsobom pomocou funkcie call volať jednotlivé funkcie dávkového súboru funkcia

call funkcia 5 9 :scitanie
echo %vysledok%
call funkcia 48 17 :odcitanie
echo %vysledok%


Komentáre

Obľúbené príspevky