1 / 46

Úvod do programování Malá kouzla s příkazovým řádkem

Úvod do programování Malá kouzla s příkazovým řádkem. Jednoduché dávkové soubory Jitka Kalná, 2009. Spuštění příkazového řádku. Start – Spustit – zadat příkaz cmd. Důležité pojmy. Absolutní cesta Relativní cesta Pracovní adresář Wildcards (tzv. zástupné znaky) ? *. Základní příkazy.

taline
Download Presentation

Úvod do programování Malá kouzla s příkazovým řádkem

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Úvod do programováníMalá kouzla s příkazovým řádkem Jednoduché dávkové soubory Jitka Kalná, 2009

  2. Spuštění příkazového řádku • Start – Spustit – zadat příkaz cmd

  3. Důležité pojmy • Absolutní cesta • Relativní cesta • Pracovní adresář • Wildcards (tzv. zástupné znaky) ? *

  4. Základní příkazy • příkaz /? – výpis nápovědy k zadanému příkazu • např. date /? • dir • cd • : (dvojtečka) • date, time • date /t, time /t • cls • echo

  5. Základní příkazy • příkaz /? – výpis nápovědy k zadanému příkazu • např. date /? • dir – vypíše obsah pracovního adresáře • cd – změna aktuálního adresáře • např. cd .., cd moje, cd ..\testy • : (dvojtečka) – změna disku • např. H:, C: • date, time – vypíše systémový datum nebo čas (a umožní ho změnit, pokud má uživatel práva) • date /t, time /t – pouze výpis data nebo času bez možnosti změny • cls – vymazání obrazovky • echo – výpis zprávy na obrazovku

  6. Dávka (dávkový soubor) • Obyčejný textový soubor, který obsahuje na jednotlivých řádcích příkazy tak, jako by je postupně zadával uživatel • Je provedený celý najednou • Přípona: bat • Možnost vytvoření v editoru v Příkazovém řádku: • Spuštění editoru: příkaz edit

  7. Dávka dnes.bat – zadání • Vytvoření dávky, která vymaže obrazovku (cls), vypíše nápis „Dnes je“ (echo) a napíše aktuální datum a čas bez možnosti změny (date /t, time /t) • Nejprve vyzkoušet napsat jednotlivé příkazy bez použití dávky • Vytvořit v editoru dávku • Uložit dávku pod názvem dnes.bat • Pokusit se dávku spustit (do příkazového řádku napsat dnes.bat)

  8. Dávka dnes.bat – první pokus davka.bat po spuštění • výpis jednotlivých příkazů, které se provádějí •  řešení: použití příkazu @echo off – zrušení výpisu na obrazovku na začátku a ve chvíli, kdy potřebujeme výstup na obrazovku použijeme příkaz echo

  9. Dávka dnes.bat – druhý pokus

  10. Příkaz goto – přechod na návěstí • Při zpracování příkazů přechází Příkazový řádek vždy na následující řádek. • Někdy může být výhodné označit některá místa pomocí návěstí a na tato místa potom přecházet • Návěstí je libovolná max. osmiznaková kombinace, před kterou je dvojtečka • např. :navesti

  11. Příkaz goto – příklad pozn.: příkaz REM slouží ke psaní komentářů – vhodné svoje programy komentovat, aby se tvůrce ve svém díle vyznal i za čas

  12. Práce s proměnnými • Proměnné často obsahují číslo, hodí se aritmetické operace. • Výpočet proběhne při použití příkazu set /a • Syntaxe: set /a “x=a+b” • Proměnná x se naplní součtem a+b (za předpokladu, že někde výše v dávce byly proměnné a, b definovány) • Výpis proměnné na monitor • Syntaxe: echo %x% • Aritmetické operace: +, -, *, / (celočíselné dělení), % (zbytek po dělení)

  13. Vstup uživatele do dávky • Hodnoty proměnných lze zadávat i z klávesnice v průběhu dávky. • Příkaz: set /p promenna=vyzva • Uživatel bude vyzván k zadání proměnné zobrazením textu vyzva • Např.: set /p x=Zadej cislo:

  14. Dávka scitani1.bat • Dávka sečte dvě čísla, která uživatel zadá z klávesnice, výsledek zobrazí.

  15. Dávka scitani1.bat

  16. Příkaz if – podmíněné zpracování příkazu a Příkaz else – rozšíření příkazu if • větvení programu na základě splnění (nesplnění) nějaké podmínky • příkaz uvedený za else bude vykonán pouze za předpokladu, že podmínka nebyla splněna • Příklad: if %q%==a (echo ahoj) else (echo nazdar) – zde se v podmínce porovnávají dva řetězce (pomocí ==)

  17. Příkaz else • POZOR: příkaz else MUSÍ být uveden na stejném řádku jako je podmínka pro if vyřešeno pomocí závorky Porovnání dvou číselných proměnných. Pokud se rovnají, provede se příkaz za if, v opačném případě se provede příkaz za else.

  18. Dávka scitani2.bat • Využijte dávku scitani1.bat • Po sečtení čísel se zobrazí dotaz, zda uživatel chce skončit (a/n) • a – dávka se spustí od začátku – nové zadání • n – dávka bude ukončena • Nápověda: použijte další proměnnou, kterou pomocí if otestujete. Pokud bude naplněna hodnotou a, pak pomocí goto a návěstí návrat zpět na začátek. Při naplnění jinou hodnotou, dávka skončí.

  19. Dávka scitani2.bat – výstup

  20. Dávka scitani2.bat – zdrojový kód

  21. Dávka hadani.bat • vygeneruje náhodné číslo od 0 do 9 • uživatel náhodně jedno číslo hádá • program vypíše, zda uživatel uhádl a vygenerované číslo vypíše • proměnná %random% – obsahuje náhodné číslo z intervalu 0 až 32767 • set /a s1= %random% – proměnná s1 bude naplněna náhodně vygenerovaným číslem • set /p s2=Zadej cislo – proměnná s2 bude naplněna z klávesnice • echo %s2% – výpis proměnné s2 • if%s1%EQU%s2% – jestliže se rovná (čísla)

  22. Dávka hadani.bat – výstup

  23. Dávka hadani.bat – zdrojový kód

  24. Dávka hadani2.bat – výstup Rozdíl proti hadani.bat: Dotaz na ukončení programu

  25. Dávka hadani2.bat – zdrojový kód Poznámka: Porovnání proměnných s číslem a řetězcem.

  26. for – příkaz cyklu • syntaxe: • for /L %%j in (začátek,krok,konec) do příkaz • proměnná j se postupně bude plnit od čísla začátek po kroku do čísla konec • parametr /L může být i malé písmeno (pozor na záměnu) • Poznámka 1: ve své základní podobě slouží příkaz for k práci s množinou souborů • Poznámka 2: pokud příkaz for použijeme uvnitř dávky je nutné řídící proměnnou VŽDY uvozovat dvěma procenty

  27. Dávka for.bat – zdrojový kód

  28. Dávka for.bat – výstup

  29. Dávka prumer.bat – výstup • Dávka pro výpočet aritmetického průměru zadaného počtu celých čísel

  30. Dávka prumer.bat • Použití triku: • aritmetika Příkazového řádku je celočíselná, ve výpočtu je použit trik: součet je před dělením vynásoben stem a je tedy 100x větší, tzn., že poslední dvě cifry jsou setinami výsledku • Výpis výsledku: • %prum:~0,-2% zobrazí výsledek bez posledních dvou cifer • následuje desetinná čárka • %prum:~-2% zobrazí poslední dvě cifry (setiny)

  31. Dávka prumer.bat – zdrojový kód

  32. Dávka scitani3.bat – výstup • Uživatel sčítá příklady, na konci dávky se zobrazí počet správně a špatně spočítaných příkladů.

  33. Dávka scitani3.bat – zdrojový kód

  34. for /f – zpracování a analýza souboru • příkaz for /f lze použít ke zpracování textového souboru, tento soubor je vstup cyklu • v každém kroku cyklu bude zpracován jeden řádek souboru, který je rozdělen na sloupce (oddělovač sloupců lze nadefinovat, např. ,;) • proměnné nadefinované v příkazu for je předán text prvního sloupce, další proměnné v abecedě je předán další sloupec, atd. • prázdné řádky jsou ignorovány

  35. for /f – zpracování a analýza souboru • za parametrem /f může být uvedeno následující: • eol=x – za konec řádku je považován i znak x (cokoliv za x bude ignorováno, např. i celý řádek) • skip=n – vynechá prvních n řádků souboru • delims=x – za x může být dosazen oddělovač sloupců, např. delims=; • tokens=a,b,c – čísla sloupců, které mají být zpracovány

  36. for /f – zpracování a analýza souboru • příklad: • for /f “eol=# delims=, tokens=1,4,5” %%A in (soubor.txt) do • konec řádku je # – cokoliv za tímto znakem je ignorováno • oddělovačem je čárka (,) • zpracován bude sloupec 1, 4, 5 • obsah prvního sloupce se uloží do proměnné %%A, obsah čtvrtého sloupce do proměnné %%B, atd. podle abecedy

  37. Dávka soubor1.bat – vstupní soubor • Soubor data.txt, který slouží jako vstup do cyklu Oddělovačem je středník ;

  38. Dávka soubor1.bat – výstup • Zpracovává se 1. a 3. sloupec, ty se i vypisují • Zároveň se do proměnné počítá i celkový plat

  39. Dávka soubor1.bat – zdrojový kód • červená šipka: výpis prázdného řádku • do proměnné plat se počítá celkový plat • # konec řádku – vše za # se ignoruje • zpracovává se 1. a 3. sloupec

  40. Dávka soubor2.bat – výstup • Upravte předchozí soubor tak, aby se vypisovalo i město • Ve vstupním souboru nadefinujte jako oddělovač čárku ,

  41. Dávka soubor2.bat – vstupní soubor • Soubor data2.txt, který slouží jako vstup do cyklu Oddělovačem je ,

  42. Dávka soubor2.bat – zdrojový kód

  43. Systémové proměnnésystprom.bat – výstup

  44. Systémové proměnnésystprom.bat – zdrojový kód Klávesová zkratka pro podtržítko: L Alt + 95

  45. Soubor docasne.bat • Napište dávkový soubor, který najde všechny dočasné soubory na disku C: (mají příponu .tmp nebo ve svém názvu mají podřetězec tmp nebo temp a nebo jsou v adresáři tmp nebo temp), seznam uloží do souboru docasne.txt.

  46. Soubor docasne.bat – zdrojový kód Po spuštění souboru je třeba mít chvilku trpělivost – výsledek není hned 

More Related