Tartalomjegyzék
Batch programozás
- Szerző: Sallai András
- Copyright © Sallai András, 2009, 2010, 2011, 2012, 2014
- Licenc: GNU Free Documentation License 1.3
- Web: http://szit.hu
Mi az a batch fájl?
Olyan állomány amely parancsokat tartalmaz. A batch fájl futtatható állomány, futtatásakor a benne elhelyezett parancsok kerülnek végrehajtásra. A batch fájlt értelemszerűen a parancsértelmező kezeli.
Batch fájlok létrehozása
Egy batch fájlnak kétféle kiterjesztése lehet:
- .bat
- .cmd
Mindkét kiterjesztésű fájlba írhatunk parancsokat. A parancsok fájlba írása után nincs több teendők magával az állománnyal, azonnal használhatjuk, vagyis futtathatjuk.
peldabatch.bat
A batch fájlt létrehozhatjuk parancsablakban vagy grafikus felülten. Parancsablakban az edit nevű paranccsal tudjuk szerkeszteni:
edit peldabatch.bat
Megjegyzés
REM megjegyzés, ami echo on mellett megjelenik :: megjegyzés, echo on mellett sem jelenik meg
Visszhang
A batchfájlba végrehajtása során a végrehajtott parancs mindig megjelenik a képernyőn. Ezt nevezzük a parancs visszhangjának.
A visszhang kikapcsolása:
@echo off
A @ az aktuális sorban is kikapcsolja.
Változó beállítása
set Konyvtaram=C:\Konyvtaram
Az echo parancs a képernyőre visszhangozza az utána írt szöveget:
echo ki nyer ma?
De segítségével az utána írt szöveg akár állományba is irányítható:
echo ki nyer ma? > info.txt
Batch fájlokban egyszerűen a képernyőre való írásra szokás használni.
Operátorok
Aritmetikai operátorok
operátor | jelentés |
+ | összeadás |
- | kivonás |
* | szorzás |
/ | osztás |
Összehasonlító operátorok
művelet | jelentés | angolul |
---|---|---|
EQU | egyenlő | equal |
NEQ | nem egyenlő | not equal |
LSS | kisebb mint | less than |
LEQ | kisebb vagy egyenlő | less than or equal |
GTR | nagyobb mint | greater than |
GEQ | nagyobb vagy egyenlő | greater than or equal |
Például:
if %szam1% gtr %szam2% ( echo %szam1% ) else ( echo %szam2% )
Kifejezések kiértékelése
Használható operátorok:
+ | összeadás |
- | kivonás |
* | szorzás |
/ | osztás |
- szamitas.bat
@echo off set /a eredmeny=5+3 echo %eredmeny% pause
Bekérés
Szelekció
Összehasonlítás
Iteráció
Egyszerű ciklus
@echo off for /l %%i in (0, +1, 5) do ( echo alma ) pause
@echo off set /a "x = 0" :while1 if %x% leq 5 ( echo %x% set /a "x = x + 1" goto :while1 ) pause
Amíg típusú ciklus
@echo off :: Legyen a kilépési feltétel a "vege" szó :ciklus set /p parancs=parancs: if "%parancs%" == "vege" goto vege goto ciklus :vege pause
Batch fájl futtatása felugró ablak nélkül
- valami.vbs
Dim oShell Set oShell = WScript.CreateObject ("WScript.Shell") oShell.run "my-batch-file.bat", 0, False Set oShell = Nothing
Fájlok és könyvtárak létezése
- checkFile.bat
echo off type egya.txt >NUL 2>NUL if ERRORLEVEL 1 ( echo A fajl nem letezik ) else ( echo "OK a fajl letezik ) pause
Fájlok és könyvtárak létezése listából
A következő batch fájl megnézi, hogy a lista.txt állományban soroként felsorolt állományok és könyvtárak léteznek-e:
- checkFile.bat
for /F "delims=," %%f IN (lista.txt) DO ( if exist %%f ( echo OK %%f ) else ( echo Nincs ilyen fajl vagy konyvtar: %%f ) ) pause
A delims=, csak azért kell, hogy megfeleljenek a szóközöket tartalmazó fájl vagy könyvtárnevek is mint a péládul a „Program Files”.