1. díl - Obecně o Batchi

Ostatní jazyky Příkazový řádek a dávkové soubory Obecně o Batchi

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

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

 

  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 (19 hlasů) :
4.789484.789484.789484.789484.78948


 



 

 

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

Avatar
Martin5001
Člen
Avatar
Martin5001:

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:

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

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

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:

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:

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
Avatar
Martin5001
Člen
Avatar
Martin5001:

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:

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:

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.12.2015 14:35
Avatar
Lukas C#
Redaktor
Avatar
Odpovídá na Jakub Lepík
Lukas C#:

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
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 14. Zobrazit vše