190 likes | 336 Views
CALL. slouží ke spouštění dávkové souboru z jiného dávkového souboru toto lze docílit i zapsáním názvu dávkového souboru, ale při této variantě se provedou příkazy ve druhém dávkovém souboru a ukončí se činnost
E N D
CALL • slouží ke spouštění dávkové souboru z jiného dávkového souboru • toto lze docílit i zapsáním názvu dávkového souboru, ale při této variantě se provedou příkazy ve druhém dávkovém souboru a ukončí se činnost • při použití CALL se provedou příkazy ve druhém souboru a řízení se vrátí zpět prvnímu souboru
CALL • CALL [disk:] [cesta] dávkový soubor [parametry] • CALL vymaz.bat *.exe *.com • BAT soubor vymaz, který smaže všechny soubory s koncovkou exe a com • po provedení příkazů v souboru vymaz se vrátí řízení souboru, z kterého byl volán • Příklad →
Příklad CALL • vytvořte dva soubory BAT • první soubor vytvoří adresářovou strukturu (struktur.bat), adresáře se budou zadávat pomocí parametru • druhy vytvoří soubor ahoj.txt v každém vytvořeném adresáři (soubor.bat), použiji parametry převzaté ze struktur.bat • po vytvoření struktury se zavolá soubor.bat a po jeho vykonání struktur.bat vypíše „Struktura a soubory vytvoreny“
Příklad CALL • Soubor struktur.bat • @echo OFF • cd \ • md %1 • md %2 • md %3 • CALL soubor.bat %1 %2 %3 • echo Struktura vytvorena
Příklad CALL • Soubor soubor.bat • @echo off • echo ahoj > %1\ahoj.txt • echo ahoj > %2\ahoj.txt • echo ahoj > %3\ahoj.txt
GOTO • příkaz provádí skok v dávkovém souboru na zadané místo, toto místo je označeno tzv. návěštím • návěští se může pojmenovat libovolně, ale musí být před ním „:“ • :smazat – příklad návěští • příkaz GOTO se používá většinou v podmínce IF, kde dochází k větvení dávkového souboru
Příklad GOTO GOTO smaz cd \ md smazat :smaz rd smaz
IF • příkaz slouží k vyhodnocení podmínky, provede příkazy, pokud daná podmínka platí • pokud podmínka neplatí je příkaz v podmínce IF ingnorován • syntaxe: • IF podmínka příkaz • IF NOT podmínka příkaz
IF • tři tvary podmínky IF • IF ERRORLEVEL == 1 GOTO xxx • ERRORLEVEL číslo, testuje chybový kód naposledy provedeného příkazu • IF “%1“ == “AHOJ“ GOTO konec • porovnává dva textové řetězce • IF [NOT] EXIST C:\TMP\*.* DEL C:\TMP\*.* • testuje přítomnost souboru
IF - příklady • IF aaa==aaa echo rovnaji se • podmínka bude platná a vypíše rovnaji se • IF ERRORLEVEL == 1 GOTO konec • použijeme ve spojení s CHOICE nebo můžeme testovat zda předchozí příkaz se provedl správně • IF EXIST C:\ZALOHA\*.* DEL C:\ZALOHA\*.* • testuje, zda jsou nějaké soubory v adresáři C:\zaloha, pokud ano, smažeje
CHOICE • příkaz slouží k ovládání dávkového souboru, pomocí toho příkazu, můžete povolit provedeni jen určité části kódu dávkového souboru, ten to kód musí být uvozen návěštím • příkaz čeká na stisknutí jedné z nadefinovaných kláves, aby se mohlo pokračovat ve vykonávání příkazů v dávce • podle toho jakou z nadefinovaných kláves stisknete se nastaví hodnota proměnné ERRORLEVEL na 0 – 255
CHOICE • syntaxe : • CHOICE přepínače text • přepínače • /C:klávesy - /C:ANS • /S – rozlišuje malá velká písmena • /N – nezobrazí nabídku voleb kláves • /T:k,ss – implicitní hodnota po vypršení času pro zadání volby
CHOICE - příklad • vytvořte menu s použitím CHOICE, kde se budeme ptát na smazání, vytvoření adresáře s názvem pokus nebo jako třetí možnost ukončení dávkového souboru
CHOICE - příklad choice /C:svk if errorlevel == 3 goto konec if errorlevel == 2 goto vytvor if errorlevel == 1 goto smaz :smaz echo maze del aaa\*.* /y rd aaa /y goto konec :vytvor echo vytvari md aaa goto konec :konec
FOR • cyklus, umožňuje provádět opakovaně příkazy • syntaxe • FOR %%X IN (seznam) DO příkaz • FOR IN DO – klíčová slova • %%X – proměnná cyklu, název pouze jeden znak mimo 0-9 • seznam – posloupnost textových řetězců, které budou postupně dosazovány do proměnné
FOR • FOR %%a IN (1 2 3 4 5) DO ECHO ahoj %%a • 5krát vypíše ahoj a číslo • FOR %%a IN (*.exe *.com *.bat) DO DIR %%a • zkuste zadat • FOR %%a IN (ahoj kuk nic) DO md %%a • vytvoří tři adresáře , podle názvů ze seznamu
SHIFT • umožňuje posun parametrů dávkového souboru je překonáno omezení %1 - %9 • jak vypíší všechny parametry dávkového souboru? @echo off :znovu if “%1“ == "" goto konec echo %1 shift goto znovu :konec
PAUSE, REM • PAUSE - pozastaví zpracování dávkového souboru a čeká na stisk libovolné klávesy • REM – komentář dávkového souboru, lze zakontovat jeden řádek • MD pokus • REM vytvoril jsem adresar pokus / toto nebude vidět