BATCH Programozás. Tartalomjegyzék



Hasonló dokumentumok
A legfontosabb DOS parancsok

O er e á r ci c ós ó s R en e d n sz s er e e r k e I. G akorlá l s

Delphi programozás I.

S z á m í t ó g é p e s a l a p i s m e r e t e k

1. Alapok. #!/bin/bash

Operációs Rendszerek II. labor. 2. alkalom

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

NAV nyomtatványok kitöltésének támogatása

Szoftver alapfogalmak

ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK

AWK programozás, minták, vezérlési szerkezetek

BASH script programozás II. Vezérlési szerkezetek

Java programozási nyelv

Webprogramozás szakkör

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

AWK programozás, minták, vezérlési szerkezetek

INFORMATIKAI ALAPISMERETEK

Operációs Rendszerek. Windows Parancssor

4. Laborgyakorlat. A fájlokról ezeket az adatokat, a fájlrendszer tárolja. Számunkra az 1, 3, 4. oszlopok lesznek az érdekesek.

C programozás. 1 óra Bevezetés

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei. Atomerőművek üzemtana

A C programozási nyelv II. Utasítások. A függvény.

Operációs rendszerek. 9. gyakorlat. BASH recap, reguláris kifejezések UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

A C# programozási nyelv alapjai

8. Laboratóriumi gyakorlat: Bevezetés a reguláris kifejezések használatába

Szkriptnyelvek. 1. UNIX shell

S z á m í t ó g é p e s a l a p i s m e r e t e k

Baran Ágnes. Gyakorlat Függvények, Matlab alapok

Java gyakorlat feladatai e s megolda sai ( )

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>

6. fejezet: Ciklusok

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II.

A PiFast program használata. Nagy Lajos

Munka a fájlokkal. Az általánosan használt fájltípusok. Programfájlok. Adatfájlok

INFORMATIKAI ALAPISMERETEK

1. Egyszerű (primitív) típusok. 2. Referencia típusok

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

INFORMATIKAI ALAPISMERETEK

Bevezetés a programozásba I.

Occam 1. Készítette: Szabó Éva

Technikai információk fejlesztőknek

AWK programozás Bevezetés

1. Jelölje meg az összes igaz állítást a következők közül!

BEKÉRT ADAT KÉPERNYŐRE ÍRÁSA KÖRNYEZETI VÁLTOZÓK FÁJL REDEZETT KIÍRÁSA KÖNYVTÁRBAN BEJEGYZÉSEK SZÁMA FÁJLBAN SZÁM NÖVELÉSE. #!

A számok kiíratásának formátuma

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Nézzük tovább a lexikai egységeket!

C programozási nyelv

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

chmod umask chown, chgrp

Bevezetés az informatikába, második gyakorlat. Bevezetés Környezetváltozók és néhány egyszerű utasítás Jogosultságok Fájlkezelés

2017/01/27 08:59 1/6 Gettext Rendszer

Programozás BMEKOKAA146. Dr. Bécsi Tamás 3. előadás

Választó lekérdezés létrehozása

A Clipper evolúciója

7. Laboratóriumi gyakorlat, 1. rész : Vezérlési szerkezetek II.

XCZ állományok ellenőrzése, átadása elektronikus beküldésre és közvetlen beküldése parancssori funkcióval az ÁNYK programban

8. Laboratóriumi gyakorlat: Bevezetés a reguláris kifejezések használatába

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

A 2014/2015 tanévi Országos Középiskolai Tanulmányi Verseny második forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Operációs rendszerek gyak.

Operációs rendszerek 1.

Matlab alapok. Baran Ágnes. Baran Ágnes Matlab alapok Elágazások, függvények 1 / 15

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Vezérlési szerkezetek

Programozási nyelvek (ADA)

Már megismert fogalmak áttekintése

M-Fájlok létrehozása MATLAB-ban

A feladat címe, rövid emlékeztetje

Interfészek. PPT 2007/2008 tavasz.

Szoftvertervezés és -fejlesztés I.

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

A PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin

MATLAB alapismeretek II.

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Operációs rendszerek Microsoft Windows XP

Komputeralgebra Rendszerek

8. Laboratóriumi gyakorlat: Bevezetés a reguláris kifejezések használatába

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 3. előadás

PDF. Tartalomjegyzék 1/21

Az operációs rendszer. Az operációs rendszer feladatai, részei, fajtái Az operációs rendszer beállítása

file://d:\melinda\2010_11_ii.félév\info1#\elektronikus számonkérés\~1~.xml

Megjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa:

BASH SCRIPT SHELL JEGYZETEK

Hardver és szoftver követelmények

Programozási nyelvek JAVA EA+GY 1. gyakolat

A billentyűzet a legfontosabb adatbeviteli eszköz, mely szinte rögtön a számítógép bekapcsolása után,,életre kel. Segítségével az operációs rendszer

ELSŐ LÉPÉSEK A SZÁMÍTÓGÉPEK RODALMÁBA AMIT A SZÁMÍTÓGÉPEKRŐL TUDNI ÉRDEMES

Algoritmizálás és adatmodellezés tanítása 1. előadás

A programozás alapjai 1 Rekurzió

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1

MultiBoot. Felhasználói útmutató

Youtube videó letöltés és konvertálás Linuxon

Informatika terméktervezőknek

Átírás:

BATCH Programozás Tartalomjegyzék 1. Bevezetés 2. Általános információk a batch file-okról 3. A legegyszerűbb batch file-ok 4. Paraméterezhető batch file-ok 5. Gyakran használatos batch parancsok 6. Elágazások 7. Feltételes-, és feltétel nélküli ugrások 8. Ciklusok 1. Bevezetés A mindennapi számítógép-használat során előfordulhat, hogy gyakorta kell ugyanazt a bonyolult parancsot, parancssorozatot kiadnunk. Az operációs rendszerekkel szemben támasztott alapvető követelmény, hogy ezek egyszerűsítésére megfelelő eszközt nyújtson a felhasználók számára. A legkézenfekvőbb megoldás egy csökkentett utasításkészletű, egyszerű programozási nyelv bevezetése. Az MsDos-ban ezt a nyelvet BATCH-nek nevezik, az angol batch (köteg) szó után, mivel a batch file-ok MsDos parancsok kötegeiként foghatók fel: a batch programozás lényege, hogy a használni kívánt MsDos parancsokat egymás után felsoroljuk egy file-ban. 2. Általános információk a batch file-okról Mint tudjuk, az MsDos operációs rendszer a kiterjesztés alapján dönti el, hogy az adott file futtatható-e. A futtatható állományok három fajták lehetnek: COM, EXE és BAT kiterjesztésűek. Az első kettő ezek közül bináris, a különbség méretükben és felépítésükben van (erről most bővebben nem szólunk). A BAT kiterjesztésű file-ok szöveges file-ok, szerkesztésük bármely szövegszerkesztő programmal történhet, mely képes ASCII formátumba menteni.

A futtatható állományok végrehajtási sorrendje: COM, EXE, BAT, tehát amennyiben ugyanazon könyvtárban (illetve a PATH könyvtárainak bármelyikében) található ugyanolyan néven a fenti kiterjesztésűek közül több is, s a programot a nevével akarjuk indítani, úgy a COM kiterjesztésű fog elindulni, amennyiben létezik. Ha nem, akkor természetesen az EXE, ha pedig az sem létezik, akkor a BAT. 3. A legegyszerűbb batch file-ok A legegyszerűbb eset a batch file-ok használatának szükségességére az, ha egy gyakran használt programot hosszú de konstans paraméterlistával kell indítanunk. Legyen például egy lovoldoz.exe nevű játékunk a C:\Games\Lovoldoz könyvtárban, melyet a következőképp szoktunk indítani: C:\Games\Lovoldoz\Lovoldoz fegyver nagy loszer sok ellenseg gyenge Bár a fenti sor begépelése viszonylag egyszerű feladat, miért ne csinálnánk még egyszerűbben? Mint már említettük, a batch file-ok MsDos parancsok felsorolásából állnak. Szintén tudjuk már azt is, hogy BAT kiterjesztéssel kell ellátnunk őket ahhoz, hogy az operációs rendszer felismerje őket. Ezen információk alapján tehát elkészíthetjük első BATCH programunkat, a következőképp: 1. Hozzunk létre egy l.bat nevű file-t a winchesterünk gyökérkönyvtárában, bármely szövegszerkesztő programmal (pl.:edit.com). 2. Írjuk bele a fenti parancsot. 3. Mentsük el a file-t. Ezek után bármikor kiadjuk az l parancsot, máris végrehajtódik a fenti parancs, s elindul a hőn áhított játék. (Itt szeretnék emlékeztetni a fent említett végrehajtási sorrendre: amennyiben létezik l.com vagy l.exe nevű file az aktuális könyvtárban, úgy az, s nem a BATCH program fog elindulni a parancs hatására.) 4. Paraméterezhető batch file-ok Szükség lehet BATCH programjaink számára különböző paramétereket átadni. Példának okáért írjunk BATCH programot, mely ARJ file-ok kitömörítését végzi! Legyen a file neve unarj.bat. Feltehetjük, hogy a kitömörítés során az arj programot mindig ugyanazokkal a paraméterekkel hívjuk, csupán a kitömörítendő file neve változik. BATCH programon belül %n jelöli a paramétereket, ahol n értéke 1 és 9 között változhat. 1

Készítsünk tehát egy unarj.bat nevű BATCH programot, melynek egyetlen paramétere a kitömörítendő file neve! Unarj.bat C:\Utils\Arj.exe x %1 r v y Előfordulhat, hogy 9 paraméternél többre van szükségünk. Ekkor a shift BATCH parancsot hívjuk segítségül: hatására a paramétereket balra tolja eggyel. Így az első paraméter elveszik, s %1 fogja jelölni a másodikat, %9 a tizediket. Az elveszett paraméterek visszaszerzésére nincs mód. 5. Gyakran használatos batch parancsok Általában egy programot akkor tekintünk felhasználó-barátnak, ha tájékoztatja a felhasználót arról, hogy mit csinál. Ehhez mindenképpen szükség van valami utasításra, amivel a képernyőre különböző üzeneteket írhatunk. Ezt végzi el az echo parancs, melynek szintaktikája: echo szöveg. Mint azt már bizonyára észrevettük, a batch file-ban található utasítások sorra megjelennek a képernyőn, amikor végrehajtásra kerülnek. Ezt a parancs neve elé írt @ jellel kerülhetjük el. Az ECHO OFF parancs kiadása egyenértékű azzal, ha minden parancs elé odaírjuk a @ jelet. Amennyiben a parancsok által a képernyőre írt üzeneteket is szeretnénk elkerülni, célszerű a parancs output-ját átirányítani nul-ra. A pause parancs hatására a képernyőn megjelenik a Press any key to continue szöveg, s a program futása megáll, mindaddig, míg a felhasználó meg nem nyom egy billentyűt. Írjunk BATCH programot, ami kiírja, hogy Nyomj meg egy billentyűt!, majd billentyűnyomásra vár, s ezután kilép! A parancsok, s outputjaik NE jelenjenek meg a képernyőn! Nyomj.bat Echo Nyomj meg egy billentyűt! Pause >nul A call parancs segítségével tudunk BATCH programunkból más BATCH programot elindítani. Amennyiben a meghívandó programot a call utasítás használata nélkül hívjuk meg, úgy programunk a meghívott file lefutása után leáll, s nem folytatja futását. A call parancs szintakszisa: call filenév.bat. 2

A parancsunkban található, REM-mel kezdődő sorok nem kerülnek végrehajtásra; ezen sorokat megjegyzés soroknak tekintjük. 6. Elágazások Mielőtt az elágazások használatára kitérnénk, meg kell említenünk a változók használatának módját. A BATCH programok az MsDos környezeti változóit használják, %változónév% jelöléssel hivatkoznak rájuk. Egy változónak értéket a SET paranccsal tudunk. Egy példa változók használatára: Valt.bat SET ALMA=Alma Echo %ALMA% Az elágazások szintakszisa 4 féle lehet: IF [NOT] EXIST filenév parancs [parancsparaméterek] IF [NOT] EXIST könyvtárnév\nul parancs [parancsparaméterek] IF [NOT] ERRORLEVEL n parancs [parancsparaméterek] IF [NOT] string1==string2 parancs [parancsparaméterek] Mind a négy verziónál csak egy, a feltétel teljesülésekor végrehajtandó parancs adható meg, így ez leggyakrabban a következő fejezetben tárgyalandó GOTO parancs lesz. Az első két változattal egy file/könyvtár létét illetve nemlétét tudjuk ellenőrizni. A harmadik verzióval egy általunk meghívott program visszatérési értéke szerint tudunk elágazni (a feltétel igaz lesz, ha a visszatérési érték a megadottnál nem kisebb illetve NOT esetén nem nagyobb), míg az utolsóval két string értékének egyezősége illetve különbözősége lehet a feltétel. A string lehet egy általunk begépelt szöveg, egy paraméter, vagy pedig egy változó értéke. A paraméter illetve változó nevét idézőjelek között kell megadni. Írjunk BATCH programot, ami amennyiben létezik letörli a gyökérkönyvtárból a virus.exe nevű file-t! Vir.bat IF EXIST \virus.exe Del \virus.exe 3

Többirányú elágazások megvalósítására a BATCH a CHOICE parancsot adja lehetőségként. Segítségével kérdéseket tehetünk fel a felhasználóknak, és megadhatjuk a választható lehetőségek listáját is. A parancs szintakszisa a következő: CHOICE [ /C[:]lehetőségek ] [ /N ] [ /S ] [ /T[:]c,nn ] szöveg /C:lehetőségek A használható billentyűket lehet itt felsorolni, amennyiben ez a paraméter nincs megadva, a default értékek magyar DOS esetében I és N, angol esetében pedig Y és N /N Nem jeleníti meg a? jelet a szöveg végén /S A választható billentyűknél megkülönbözteti a kis és nagybetűket. /T:c,nn nn másodperc eltelte után automatikusan kiválasztja a c lehetőséget. Szöveg A megjelenítendő kérdés. A CHOICE visszatérési értéke a választott lehetőség sorszáma lesz. Írjunk BATCH programot, ami megkérdezi a felhasználótól a nemét, s nemének megfelelően köszönti! Hello.bat Choice /C:FL Fiú vagy vagy lány If errorlevel 2 goto lany Echo Szervusz, fiacskám Goto end :lany echo Szervusz, kislány ;) :end 4

7. Feltételes-, és feltétel nélküli ugrások Nagyobb feladatoknál előfordulhat, hogy szükségünk van a program egy pontján a futást megszakítani, s egy másik ponton folytatni; azaz a program egyik pontjáról a másikra ugrani. Ahhoz, hogy egy-egy ugrást végre tudjunk hajtani, ún. cimkéket kell definiálnunk: az ugrásnál ezekre hivatkozva adjuk meg a célt. Cimke definiálása BATCH-ben a : jellel történik, szintakszisa: :cimkenév. A goto parancs segítségével tudunk egy adott cimkére ugrani; amennyiben feltételes ugrásra van szükségünk, értelemszerűen az if szerkezetet kell a goto utasítással kombinálni. Írjunk BATCH programot, aminek paramétere egy csokoládé márka, s amennyiben ennek a paraméternek Boci az értéke, a program kiírja, hogy Hmmmm Azt én is szeretem!, ellenkező esetben viszont kiírja, hogy Egyél inkább Bocit! Csoki.bat @echo off if %1 == Boci goto boci echo Egyél inkább Bocit! Goto end :boci echo Hmmmm Azt én is szeretem! :end 5

8. Ciklusok A BATCH nyelv csak számláló ciklusok megvalósítására ad implicit lehetőséget, az általános elöl-, illetve hátultesztelő ciklusokat az IF szerkezet és a GOTO utasítás alkalmazásával kell megvalósítanunk. A számláló ciklus szintakszisa: FOR %%c in (halmaz) do parancs [parancsparaméterek] A halmaz tetszőleges értékek vesszővel elválasztott felsorolása, illetve file-lista is lehet, például: (*.txt), (*.com, *.exe), (a?lma.txt). Írjunk BATCH programot, amely az aktuális könyvtárban található összes PASCAL file-t lefordítja a tpc.exe program segítségével! Fordit.bat @echo off For %%a in (*.pas) do tpc %a 6