A Windows kötegelt parancsfájljainál a fejlesztők különféle technikákkal vagy módszerekkel szabályozhatják a szkriptek áramlását, hogy szüneteket vagy várakozásokat vezessenek be. A „pause” és a „wait” parancsok két módja a kötegfájlok áramlásának szabályozásának. A „pause” parancs leállítja a kötegfájl végrehajtását, miközben megjelenik a „Nyomja meg bármelyik gombot a folytatáshoz…” üzenet. A kötegfájl nem futhat addig, amíg a felhasználó meg nem nyom egy billentyűt. A kötegfájl végrehajtása a várakozási utasítás által jelzett számú másodpercre felfüggesztésre kerül.
Kötegelt fájl Szünet parancs
A kötegfájl „szünet” parancsa leállítja a kötegfájl végrehajtását, miközben megjeleníti az üzenetet a parancssorban. A kötegfájl addig nem fut le, amíg a felhasználó meg nem nyom egy billentyűt. A következő végrehajtást leállító parancs hasznos. Előnyös, ha közvetlenül futtatja a kötegfájlt, és látja a kívánt kimenetet a képernyőn.
A „pause” parancs szintaxisa a következő:
Szünet
Kérje meg a felhasználót a bevitelre
A következő kötegelt parancsfájl „szünet” parancsa a „Nyomja meg bármelyik billentyűt a folytatáshoz…” üzenetet jeleníti meg, amikor a felhasználó futtatja ezt a kötegfájlt. Mielőtt a kötegfájl a „dir” parancsra lépne, a felhasználónak meg kell nyomnia egy billentyűt.
@echo kikapcsolva
rem Ez a kötegfájl szünetel, hogy a felhasználó megnyomjon egy billentyűt.
echo Hello! Üdvözöljük a PAUSE parancs bemutatójában.
echo Script végrehajtása a szünet után is folytatódik.
szünet
rem Ez a kötegfájl a következő paranccsal folytatódik.
echo Köszönöm!
te
Amikor a felhasználó megnyom egy billentyűt a billentyűzeten, ez a kötegelt folyamat folytatódik:
Batch File Wait parancs
A megadott kód egy kötegfájl, amely két programot nyit meg: Jegyzettömböt és Paint. A kód a következő:
@echo kikapcsolvaecho Az első program indítása.
START /B /VÁRJ notepad.exe
echo Jegyzettömb sikeresen megnyitva a háttérben
echo Második program indítása.
START /VÁRÁS mspaint.exe
echo A Paint sikeresen megnyílt.
cmd /k
Az első sor, a „@echo off”, megakadályozza, hogy a kötegfájl megjelenítse a parancsokat végrehajtásuk közben.
A felhasználót egyszerűen tájékoztatja arról, hogy az első program elindul, a második sor, amely „echo Starting First Program” (visszhang az első program indítása).
A harmadik sor, a „START /B /WAIT notepad.exe”, megnyitja a Jegyzettömb programot egy háttérablakban, és megvárja annak befejezését, mielőtt folytatná. A „/B” kapcsoló azt mondja a START parancsnak, hogy a programot egy háttérablakban futtassa, a „/WAIT” kapcsoló pedig a START parancsot, hogy várja meg, amíg a program befejeződik, mielőtt folytatná.
A negyedik sorban az echo Notepad olvasható. Amikor a Jegyzettömb sikeresen megnyílik a háttérben, csak egy üzenettel értesíti a felhasználót.
Az ötödik sor, az „echo Starting Second Program”, egyszerűen egy üzenetet jelenít meg a felhasználónak, hogy a második program elindul.
A hatodik sor, a „START /WAIT mspaint.exe”, megnyitja a Paint programot egy háttérablakban, és nem várja meg, hogy befejezze, mielőtt folytatná.
A hetedik sor, az „echo A festék sikeresen megnyitva”, egyszerűen egy üzenetet jelenít meg a felhasználónak, hogy a festéket sikeresen megnyitották.
A nyolcadik sor, a „cmd /k”, új parancssor ablakot nyit meg, és nyitva tartja az aktuális parancssori ablakot.
Hurok használata egyéni késleltetésekhez
Használhatunk hurkot az egyedi késleltetésekhez a kötegelt folyamatban. Íme egy példa:
Ebben a példában az első üzenet a kötegfájl futtatásakor jelenik meg a felhasználó számára. Az első üzenet ezután még egyszer megjelenik, amint a „for” ciklus elkezdődik. Az időtúllépési parancs leállítja a kötegfájlt egy másodpercre, mielőtt megjelenik a második üzenet. Az utolsó üzenet összesen 10 iteráció után jelenik meg.
@echo kikapcsolvaecho A késleltetés bemutatása hurok használatával
for /l %%i in (1,1,10) do (
timeout /t 1 /nobreak > null
echo Ez az üzenet %%i másodperc múlva jelenik meg
)
echo Ez az üzenet 10 másodperces késleltetést jelez.
Időtúllépés használata késleltetéshez
A kötegfájl időtúllépési parancsa előre meghatározott számú másodpercre szünetelteti a kötegfájl végrehajtását. A szintaxis itt található:
időtúllépés /tA „/t” kapcsoló megadja a várakozási időt másodpercekben. A „/nobreak” kapcsoló letiltja a felhasználó gombnyomásait a késleltetés megszakításához.
Az „időtúllépés” parancs a következőkre használható:
- A kötegfájl végrehajtásának elhalasztása egy előre meghatározott időtartamra
- Megakadályozza, hogy a felhasználó megszakítsa a kötegfájl műveletet
- Hozzon létre felhasználóbarátabb élményt azáltal, hogy megakadályozza, hogy a felhasználónak meg kelljen nyomnia egy gombot a folytatáshoz
Például a következő kötegfájl 10 másodpercre szünetel:
@echo kikapcsolvaecho Hello! A szkript végrehajtása 10 másodperces késleltetés után folytatódik
időtúllépés /t 10
echo Köszönöm!
Amint az a következő képernyőképen látható, egy időzítő fut, és arra vár, hogy a felhasználó megszakítsa az „időtúllépés” parancsot bármely gomb megnyomásával. Ha a felhasználó megnyom egy gombot, a folyamat leáll, és a következő parancsra lép a kötegfájlban:
A következő képernyőképen látható felhasználó 5 másodperc után megszakítja az „időtúllépés” parancsot, aminek eredményeként megjelenik a „Köszönöm!” üzenet. üzenet:
A következő képernyőképen látható, hogy a „Köszönöm!” Ha a végfelhasználó nem szakítja meg az időtúllépési utasítást, 10 másodpercet vesz igénybe, amíg az üzenet megjelenik a képernyőn:
Íme a frissített kód, amelyet úgy módosítottak, hogy tartalmazza a megszakítás nélküli kapcsolót, amely megakadályozza, hogy a végfelhasználó megszakítsa a kötegfájl folyamatát:
@echo kikapcsolvarem Ez a kötegfájl 10 másodpercre szünetel
echo Hello! A szkript végrehajtása 10 másodperces késleltetés után folytatódik
timeout /t 10 /nobreak
rem 10 másodperc elteltével ez a parancs megjelenik a prompt képernyőn
echo Köszönöm!
Íme az előző kód kimenete:
A parancssor arra kéri a felhasználót, hogy írja be az Y vagy az N karaktert, ha a felhasználó a „CTRL+C” parancsot használja. Ha a felhasználó az Y gombra kattint, ez a kötegelt feladat leáll:
A „pause”, „wait” és „timeout” parancsok a szkriptjeink áramlásának vezérlésének módjai. A szkript futása felfüggesztésre kerül, amikor a „pause” parancsot használják, és leáll egy előre meghatározott ideig, ha az „timeout” parancsot használják.
Feltételes utasítások használata az áramlásszabályozáshoz
A feltételes utasítások a leggyakrabban megvalósítható technika, amelyet a szkript folyamának egy bizonyos körülmény alapján történő módosítására alkalmaznak. Attól függően, hogy egy feltétel igaz vagy hamis, az „if” utasítás végrehajtja a két kódvégrehajtás egyikét. Az „if” utasítás a következőképpen épül fel:
ifPélda:
Nyissa meg a Jegyzettömböt vagy bármely tetszőleges szövegszerkesztőt, és írja be a következő kódot, amely az inputValue változó értékét 1-re inicializálja a harmadik sorban. Az inputValue változó értékét ezután a rendszer egy „if” utasítással ellenőrzi futás közben, hogy 1, 2 vagy 3-mal egyenlő-e. Ha igen, a megfelelő üzenet kinyomtatásra kerül a parancssori képernyőn. Ha nem, akkor az utolsó üzenet jelenik meg. Az „if” néven ismert feltételes utasításban a rendszer ellenőrzi a változó inputValue értékét, hogy 1, 2 vagy 3-mal egyenlő-e. Ha igen, akkor a két kódblokk egyike végrehajtásra kerül. Ha a feltétel igaz, a feltételes állítás nem tesz semmit.
@echo kikapcsolvarem Ez a szkript teszteli az inputValue változót az 1, 2 és 3 értékkel.
állítsa be az inputValue=1-et
if '%inputValue%'=='1' (
echo A bemeneti érték egyenlő 1-gyel.
) else if '%inputValue%'=='2' (
echo A bemeneti érték egyenlő 2-vel.
) else if '%inputValue%'=='3' (
echo A bemeneti érték egyenlő 3-mal.
) más (
echo Az inputValue változó nem egyenlő 1-gyel, 2-vel vagy 3-mal.
)
Kimenet:
Következtetés
A szkriptfolyamat vezérelhető, és a folyamatok automatizálhatók a Windows operációs rendszeren parancsok, ciklusok és feltételes utasítások, például „if” használatával. A fejlesztők leállíthatják a szkript végrehajtását, vagy késleltetéseket adhatnak hozzá a „pause” paranccsal az „timeout” vagy a „ping” használatával. Bár a kötegelt szkriptekben nincs beépített „switch” utasítás, ezt szimulálhatjuk „if” és „else if” kifejezésekkel. A tesztelés alapvető fontosságú annak biztosításához, hogy ezek a szkriptek a megfelelő kontextusban megfelelően működjenek. Ezek a szkriptek hasznosak az automatizáláshoz, a rendszerkezeléshez és a fájlkezeléshez.