Java týden Body zdarma
Využij podzimních slev a získej od nás až 40 % bodů zdarma! Více zde
Pouze tento týden sleva až 80 % na Java e-learning!

Lekce 1 - Obecně o Batchi

Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem.
Vydávání, hosting a aktualizace umožňují jeho sponzoři.

Batch je skriptovací jazyk vyvinutý pro operační systémy od Microsoftu – MS-DOS a Windows. Pro běh využívá příkazový řádek. Programům zapsaným v tomto jazyce se říká dávkové soubory, protože obsahují více příkazů, které jsou spuštěny v příkazovém řádku. Jedná se o obyčejné textové soubory s příponou .bat, které lze spustit na každých Windows, aniž by člověk musel cokoli instalovat. Proto je experimentování s těmito soubory oblíbené zejména u začínajících a mladších ajťáků. Proto je k „ladění“ těchto programů, případně pro zkoušení příkazů, možné využít přímo příkazový řádek. Příkazový řádek spolu s tímto jazykem je pomalu nahrazován PowerShellem.

Příkazový řádek

Neboli command line, je rozhraní (CLI - command line interface), ve kterém uživatel komunikuje s počítačem pomocí zadávání příkazů nebo textových údajů. Toto rozhraní využíval operační systém MS-DOS do té doby, než vyšly první grafické nadstavby. V operačních systémech Windows lze toto rozhraní vyvolat pomocí stisku klávesové zkratky Windows + R a následně zadat příkaz „cmd“.

Spuštění příkazového řádku ve Windows

Příkazový řádek je ve výchozím nastavení černé okno s šedým písmem a blikajícím kurzorem (prompt). Po kliknutí na ikonku v záhlaví okna lze vyvolat okno „Vlastnosti“, pomocí kterého lze do určité míry změnit vzhled příkazového řádku.

V operačním systému Windows 8.1 je na výběr z 3 písem. Já používám písmo „Lucida Console“ velikosti 12. Dále lze nastavit výchozí velikost okna a jeho umístění. Ve výchozím nastavení je okno otevřeno na pozici automaticky zvolené systémem. Samozřejmě nesmíme zapomenout na možnost zvolit barvu písma a barvu pozadí.

Nastavení barev příkazové řádky ve Windows
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

But we are hackers and hackers have black terminals with green font colors! [John Nunemaker]

Pokud jste již v příkazovém řádku něco zkoušeli, nejspíše víte, že tu nefungují standardní klávesové zkratky jako je CTRL+C nebo CTRL+V. Ty zde mají vyšší účel. Kopírování nebo vkládání lze provádět pomocí kliknutí pravým tlačítkem myši. Můžete zde nalézt možnost „Označit“. Po zvolení lze levým tlačítkem myši označit libovolný text, který se zkopíruje po stisknutí klávesy Enter nebo pravého tlačítka myši. Vkládání lze provést stiskem pravého tlačítka a výběrem možnosti Vložit.

Kopírování a vkládání textu v příkazovém řádku Windows

Klávesové zkratky

Jak jsem již zmínil u kopírování a vkládání textu, v příkazovém řádku lze využívat i klávesové zkratky.

Pozastavení výpisu

Čas od času se může stát, že spustíte nějaký příkaz, který má (hodně) dlouhý výstup. Příkladem takového příkazu je například vypsání stromové struktury složky C:\Windows. Pokud budete chtít pozastavit výpis a například si přečíst jaké složky tam jsou, stačí stisknout klávesu Pause. Vypisování obsahu se pozastaví, obnovit lze stiskem libovolné klávesy.

Ukončení programu

Můžeme použít předchozí příklad. Může se také stát, že takový příkaz spustíte omylem. V tomto případě vás ale výpis vůbec nezajímá a nejradši byste program ukončili. K tomu slouží klávesová zkratka CTRL+C.

Doplnění názvu

Příkazový řádek umožňuje automaticky doplnit název složky podle zadání, a to klávesou TAB. Pokud se například nacházíte ve složce „C:\“, stačí zadat „Wi“, stisknout TAB a slovo bude automaticky doplněno na „Windows“.

Listování příkazy

Pomocí šipek Nahoru a Dolů lze listovat mezi dříve zadanými příkazy. Pro přehlednější výpis slouží klávesa F7. Po stisknutí této klávesy se zobrazí seznam dříve zadaných příkazů. Příkaz lze vybírat šipkami a následně zvolit klávesou Enter.

Výběr z listu příkazů v příkazovém řádku

Minulý příkaz lze také vyvolat písmenko po písmenku – a to pomocí klávesy F1. Seznam dříve zadaných příkazu je možné vymazat pomocí ALT+F7. V případě, že jste spouštěli hodně příkazů a chcete spustit například 1. příkaz, je možné spustit příkaz číslo # - a to po stisku klávesy F9.

Listování příkazy v příkazovém řádku Windows

Konec řádku

Čas od času se hodí konec řádku. Ten lze zadat pomocí klávesové zkratky CTRL+Z.

Kódování

Příkazový řádek má občas problém s kódováním, a to hlavně se znaky „ěščřžý“. Znaky jako jsou „áíé“ fungují bez problému. V dávkových souborech ale nefungují ani znaky „áíé“. Řešení je velmi jednoduché – stačí soubor uložit v kódování OEM-852 a budou fungovat. V dalším díle si ukážeme jak na to.

Kódování a české znaky v Batch

 

 

Článek pro vás napsal Daniel Vítek
Avatar
Jak se ti líbí článek?
25 hlasů
Primárně PHP programátor, rád si hraje s Arduinem a píše články do sekce Batch.
Všechny články v sekci
Příkazový řádek a dávkové soubory
Miniatura
Následující článek
Editor a první program v Batchi + cvičení
Aktivity (1)

 

 

Komentáře

Avatar

Člen
Avatar
:22.2.2015 8:47

Jsem rád, že jsem našel tenhle seriál, mám jen dvě připomínky.
Buď se špatně dívám, anebo je poměrně dost obtížné se orientovat v tom, kdy jsou vlastně texty psány - důsledek je jasný, nevím, do jaké míry je to aktuální.
Druhá věc je ještě méně příjemná, odkazovaný Bat To Exe Conventor obsahuje škodlivé programy, po jeho použití se do compu dostalo smetí jménem Linkey a PC Mechanic.

 
Odpovědět  -3 22.2.2015 8:47
Avatar
Neaktivní uživatel:22.2.2015 8:56

Na toto čekám půl roku Daniel Vítek. DÍKY

Odpovědět  +2 22.2.2015 8:56
Neaktivní uživatelský účet
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na
Daniel Vítek:22.2.2015 14:29

Texty by měly být aktuální do 3. lekce, včetně cvičení. Další články jsou staré, ve volných chvílích je přepisuju.

To s tím Bat to exe nemohu potvrdit, dlouho jsem to nepoužíval, ale někdy 2012/2013 kdy jsem to používal jsem s tím žádné problémy neměl. Nezapomněl jsi něco odškrtnout při instalaci ?

Odpovědět  ±0 22.2.2015 14:29
Na síti působím už pěknou řádku let. Pokud budeš něco potřebovat, písni mi, pokusím se ti poradit :)
Avatar
Msprg
Člen
Avatar
Msprg:3.3.2015 16:45

Vidim ze si to pisal vo win 8+ takze si to tam skusal a predpokladam ze si skusal aj ctrl+c, +v . to uz ale vpodstate teraz neplati vo windows 10 tech. Preview to funguje (sam som to totiz skusal a pisali to aj tu na devbook-u.)

 
Odpovědět  +1 3.3.2015 16:45
Avatar
Martin5001
Člen
Avatar
Martin5001:16.4.2015 9:45

Ahojte.
Nevěděl jsem kam to zařadit tak to píšu sem:
Chtěl bych se jen zeptat zda jde v batchi udělat, že zmačknu klávesu a nemusím to potvrdit enterem. Taky bych potřeboval, aby mi to "přečetlo" mezerník. Nevíte někdo jak na to?
Díky

 
Odpovědět 16.4.2015 9:45
Avatar
Odpovídá na Martin5001
Neaktivní uživatel:16.4.2015 10:13

Přilož prosím zdrojový kód, děkuji :)

Odpovědět  -3 16.4.2015 10:13
Neaktivní uživatelský účet
Avatar
Martin5001
Člen
Avatar
Odpovídá na Neaktivní uživatel
Martin5001:16.4.2015 10:51

Já právě zatím zjišťuju jestli to vůbec jde a podle toho začnu něco dělat. Takže žádný zdroják nemám. Dík, že si tak rychle reagoval.

 
Odpovědět 16.4.2015 10:51
Avatar
Odpovídá na Martin5001
Neaktivní uživatel:16.4.2015 11:12

Teď jsem si to přečetl pořádně. Prostě tam dáš

pause >nul

a třeba před to přidáš nějaký echo:

echo Podtvrďte mezerníkem

Ale jinak přímo to zaměřit na nějakou klávesu, to asi nejde.

Odpovědět 16.4.2015 11:12
Neaktivní uživatelský účet
Avatar
Martin5001
Člen
Avatar
Martin5001:16.4.2015 11:34

To už vím, ale chtěl bych zkusit udělat jednoduchou hru a místo šipek chci použít a,s,d,w a nechci pokaždé mačkat enter.

 
Odpovědět  -1 16.4.2015 11:34
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Martin5001
Člen
Avatar
Odpovídá na
Martin5001:13.7.2015 10:57

To nejsou škodlivé programy (To by znamenalo viry atd.). Jsou to nechtěné/nevy­žádané programy, ale systém či jeho činnost nijak neovlivňují.

 
Odpovědět 13.7.2015 10:57
Avatar
Msprg
Člen
Avatar
Odpovídá na Martin5001
Msprg:24.7.2015 10:58

za prvé činnosť systému ovplyvňujú.
za druhé:

@echo off
:menu
cls
echo.
echo       A - Text for item A
echo       B - Text for item B
echo       C - End
echo.
choice /c:ABC > nul
if errorlevel 3 goto end
if errorlevel 2 goto B
if errorlevel 1 goto A
echo Error... choice not installed
goto end
:A
echo Commands for item A
pause
goto menu
:B
echo Commands for item B
pause
goto menu
:end
exit

Poďakuj sa Danielovi vítkovi.

 
Odpovědět 24.7.2015 10:58
Avatar
Jakub Lepík
Člen
Avatar
Jakub Lepík:1.12.2015 14:35

Ahoj, chtěl bych se zeptat... V čem je chyba? Když program uložím s kódováním OEM-852, neukazuje mi háčky atd... Používám Win10. Díky.

Editováno 1.12.2015 14:36
 
Odpovědět  -1 1.12.2015 14:35
Avatar
Lukas C#
Redaktor
Avatar
Odpovídá na Jakub Lepík
Lukas C#:1.12.2015 17:29

Není to chyba, jen prostě program, ve ketrém ten .bat otevřeš (tady tedy příkazový řádek) musí mít nastavené stejné kódování - takže před nějakým výpisem přidáš command "chcp 852" (change code page), a mělo by to jít.

 
Odpovědět 1.12.2015 17:29
Avatar
Jakub Lepík
Člen
Avatar
 
Odpovědět 1.12.2015 21:32
Avatar
Placka03
Člen
Avatar
Placka03:21.2.2018 15:59

Ahoj,
nevíte někdo, jak se v Batci dají dělat komentáře?

 
Odpovědět 21.2.2018 15:59
Avatar
Jindřich Máca
Tým ITnetwork
Avatar
Odpovídá na Placka03
Jindřich Máca:21.2.2018 16:06

Ahoj, pomocí příkazu rem. Viz. https://docs.microsoft.com/…commands/rem ;)

Např.:

rem Toto je komentář.
Editováno 21.2.2018 16:06
 
Odpovědět  +1 21.2.2018 16:06
Avatar
Placka03
Člen
Avatar
 
Odpovědět 21.2.2018 16:10
Avatar
Boris Chytil
Člen
Avatar
Boris Chytil:22.3.2018 12:01

Zdravím
Jmenuji se Boris Chytil a nedávno jsem se přihlásil na váš web.
Potřebuji pomoci s češtinou v bat souborech. Ať zkouším co zkouším, pořád mám smůlu s písmeny "š č ř ž ý" .
Používám PSPad, kde nastavuji kódovou stránku 852 a písmo na středoevropské.
S bat soubory jsem kdysi pracoval před mnoha a mnoha lety v době kdy vládl DOS. Je mi totiž téměř 72 let a celý život jsem se pohyboval ve výpočetní technice.
Pokud mi můžete poradit budu rád.
Děkuji a přejí pěkný den
ChB

 
Odpovědět 22.3.2018 12:01
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 18 zpráv z 18.