Základní prvky a příklady dávek

pause

Příkaz pause pozastaví běh dávky a počká na stisk libovolné klávsy a poté bude pokračovat v provádění popřípadě se ukončí.

Více příkazů na jednom řádku

Pokud budete chtít dávat více příkazů na jeden řádek, budete muset použít znak & (ampersand). Na české klávesnici ho vytvoříte stiskem kláves pravý ALT + C. Ampersand nejvíce oceníte při tvorbě zástupců cmd (Místní nabídka -> Nový -> Zástupce). Tohoto zástupce musíte ještě přesunout do složky po spuštění. Může být užitečné pro pozdrav nebo upozornění.

cmd /c echo Dobrý den %username% & echo Dnes je %date% %time% & echo Nenavštěvujte
prosím stránky s nelegální a nebo neetickou tématikou. & echo Vaše činnosti jsou monitorovány! echo Děkuji
Správce sítě & pause

Příkazy můžeme také oddělit && (dvojitý ampersand). Následující příkaz bude vykonán pouze pokud skončil předchozí příkaz bez chyby. Dále můžete oddělovat příkazy symbolem || (dvojitá roura). Příkaz za rourami bude provedem pouze v případě, že předchozí příkaz skončil s chybou. Toto nalezne uplatnění při detekci nějakého souboru. Pokud je onen soubor nalezen bude se pokračovat a pokud ne dávka skončí. Později se ale naučíme elegantnější způsob.

@echo off

Před každou dávkou používám příkaz @echo off. Tím vypínám hlášení o průběhu dávky. Zkuste nějakou dávku napsat bez tohoto příkazu na začátku a poznáte proč je to užitečné.

Příklady dávek

Převede datem z formátu cm do formátu dd-mm-yyyy.

@echo off
set datum=%date%
set datum1=%date:~3%
set datum2=%date:.=-%
echo %datum2%
pause

Pomocí operací s texty, které cmd nabízí můžete také udělat i jednoduchou šifru.

Kodér Dekodér
@echo off
set text="toto je pro studijni ucely"
set texta=%text:a=.%
set textb=%texta:b=:%
set textc=%textb:c=!%
set textd=%textc:d=8%
set texte=%textd:e=>%
set textf=%texte:f=<%
set textg=%textf:g=)%
set texth=%textg:h=(%
set texti=%texth:i=7%
set textj=%texti:j=@%
set textk=%textj:k=#%
set textl=%textk:l={%
set textm=%textl:m=}%
set textn=%textm:n=$%
set texto=%textn:o=^%
set textp=%texto:p=+%
set textq=%textp:q=;%
set textr=%textq:r=_%
set texts=%textr:s=1%
set textt=%texts:t=2%
set textu=%textt:u=/%
set textv=%textu:v=?%
set textw=%textv:w=&%
set textx=%textw:x=3%
set texty=%textx:y=|%
set textz=%texty:z=-%
echo %textz% > C:vypis.txt
pause
@echo off
set text="2^2^ @> +_^ 12/87@$7 /!>{|"
set texta=%text:.=a%
set textb=%texta::=b%
set textc=%textb:!=c%
set textd=%textc:8=d%
set texte=%textd:>=e%
set textf=%texte:<=f%
set textg=%textf:)=g%
set texth=%textg:(=h%
set texti=%texth:7=i%
set textj=%texti:@=j%
set textk=%textj:#=k%
set textl=%textk:{=l%
set textm=%textl:}=m%
set textn=%textm:$=n%
set texto=%textn:^=o%
set textp=%texto:+=p%
set textq=%textp:;=q%
set textr=%textq:_=r%
set texts=%textr:1=s%
set textt=%texts:2=t%
set textu=%textt:/=u%
set textv=%textu:?=v%
set textw=%textv:&=w%
set textx=%textw:3=x%
set texty=%textx:|=y%
set textz=%texty:-=z%
echo %textz% >C:vypis2.txt
pause

Tohle je jenom zlomek umění dávkových souborů MS-DOSu. V současné době je dost lidí, kteří se snaží (třeba i hádáním hesel) dostat do vašeho e-mailu. Tak ať se tam dostane a přečte si takto šifrovanou zprávu. Myslím, že bude překvapen. K tomu abyste si tuto zprávu přečetli musíte mít dekodér, který je to samé, co kodér, ale s prohozenýma hodnotami. Používat kodér s těmito hodnotami už není zrovna bezpečné, a proto je lepší, když si vytvoříte svůj vlastní. Jak vydíte skoro nic za tím není. Jenom to chce trpělvost a čas. Bohužel je nutné pokud budete chtít soubor rozkódovat vložit text z něj do proměnné text v dekodéru. V předposledním řádku kodéru je místo, kam se uloží šifrovaný text a v dekodéru je zase místo, kam se uloží dešifrovaný text. Pokud bude již soubor s názvem vypis.txt nebo vypis2.txt exitovat tak bude nenávratně přepsán! Do tohoto kodéru nesmíte používat diakritiku a velká písmena. Když je tam napíšete, tak tam zůstanou tak jak jsou a nezašifrují se. Takhle by se třeba dala vytvořit i slavná Caesarova šifra (posunutí abecedy o 3 znaky) a nebo překladač z azbuky do latinky.