< Windows

Batch programozás

Szerző: Sallai András

Copyright © 2029, Sallai András

Szerkesztve: 2009, 2010, 2011, 2012, 2014

Licenc: GNU Free Documentation License 1.3

Web: https://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
@echo off set /a eredmeny=5+3 echo %eredmeny% pause

Bekérés

@echo off set /p nev=Nev: echo Ezt irtad: %nev% pause

Szelekció

Összehasonlítás

@echo off set nev=jani if "%nev%" == "jani" ( echo egyezik ) pause

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

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

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:

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”.