Batch: Várakozás batch fileban

Rendszer / Windows batch (1689 katt)

Nemrég egy olyan problémával kerültem szembe, melyben egy batch file futtatása során várakozni kellett volna egy bizonyos ideig.

Windows XP alatt erre nem találtam egyszerűen adódó megoldást (pl. egy sleep utasítást vagy valami hasonlót), de a problémát meg lehet oldani egy fapados, de mégis működő paranccsal:

ping -n 5 127.0.0.1

ahol a -n szám a help szerint a küldendő echo kérések számát jelenti.

Ha azt szeretnénk, hogy ne látsszon a parancs kimenete a képernyőn, akkor azt át lehet irányítani a nul-ba:

ping -n 5 127.0.0.1 > nul

Windows 7 alatt már jobb a helyzet, itt ugyanis használhatjuk a timeout parancsot:

A segédprogram az időtúllépési paraméterben átvett időtartamig vagy egy billentyű lenyomásáig várakozik (másodpercben). Emellett azt is meg lehet adni, hogy a billentyűleütéseket figyelmen kívül hagyja.

Paraméterlista:
- /T timeout : A várakozás időtartama másodpercben. Érvényes tartomány: -1-től 99999 másodpercig.
- /NOBREAK : A billentyűleütések figyelmen kívül hagyása, és várakozás a megadott ideig.

Megjegyzés: A -1 időtúllépési érték hatására a program meghatározatlan ideig vár egy billentyű leütésére.


Példa:

timeout -t 5 -nobreak

A témával kapcsolatban egyébként itt találtam egy érdekes vitát:

http://stackoverflow.com/questions/166044/sleeping-in-a-batch-file

Előző oldal Kapitány