1 Operációs rendszerek I, 3. gyakorlat Windisch Gergely
2 Batch fájlok ● rem: comment ● pl: rem Ezt a sort ne hajtsd végre ● Ki fogja irni, de nem értelmezi. ● echo off ● Alapból mindent kiír, ezzel a parancs kiírása megakadályozható globálisan ● Parancs elé ugyanezt teszi ● Escape karakter: ^ ● title: Ablak nevét írhatjuk át ● testreszabás, progress bar
3 Változók ● l. környezeti változók ● létrehozás: set valtozonev=”valami” ● törlés: set valtozonev= ● A változóknak azonnal értéket kell adni ● nem case sensitive ● Hatóköre az adott parancsfájl ● kisebb hatókör kell, akkor setlocal, endlocal ● Aritmetika: /a ● set ertek=4+4: string set /a ertek=4+4: 8
4 Bemeneti paraméterek ● %0: fájl neve ● %1--> többiek ● pl: a.cmd se ki se be se nyő ● : %0: a.cmd ● : %1: se stb.
5 Elágazáskezelés ● IF ● Igaz-hamis állításokat ellenőrizhetünk vele ● IF condition (statement1) [else (statement2)] ● if „%ComputerName%”==”kalapacs” (echo „De fura nev”) else (echo „Nem is olyan fura nev”) ● „”-re vigyázni, nélküle nem megy! ● IF NOT ● Mint az IF, csak negálva ● IF DEFINIED, IF NOT DEFINIED ● true, ha a megadott változó létezik: if not definied %temp% (set temp=”C:\temp”) ● IF EXISTS: fájl létezését vizsgálja
6 Elágazáskezelés (2) ● Összehasonlítások IF-ben ● if „stringA”==”stringB” ● if „%varA%”==”stringA” ● if „%varA%”==”%varB%” ● Idézőjel használata hasznos ● /i kapcsolótól megszűnik a nagybetű érzékenység ● equ, neq, lss, leq, gtr, geq ● if „%varA%” lss ”%varB%”: igaz, ha varA kisebb, mint varB
7 Elágazáskezelés (3) ● IF igaz és hamis ágához csak egy parancsot írhatunk (vagy láncolni) goto ● Pl: if "%1"=="1" goto alma if "%1"=="2" goto korte :alma echo „ez itt az 1-ag” goto exit :korte echo „ez itt a 2-ag” goto exit :exit
8 Iteráció: FOR ● /D: Könyvtárak iterálása ● /R: alkönyvtárakkal együtt ● /L: értéksorozat végigjárása ● /F: fájlon belül soronkénti iterálás ● Kapcsoló nélkül: Fájlok iterálása ● for [módszer] (változónév) in (fájllista) do (parancs) ● for %B in (*.*) do echo %B ● for /d %B in (*.*) do echo %B ● for /l %B in (0,1,10) %B ● For /f %B in (akarmi.txt) do echo %B ● Parancssorban csak %B a változó