Kötegelt fájl szüneteltetési és várakozási parancsok: a szkriptek áramlásának szabályozása

Kotegelt Fajl Szuneteltetesi Es Varakozasi Parancsok A Szkriptek Aramlasanak Szabalyozasa



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 kikapcsolva

echo 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 kikapcsolva

echo 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 /t [/nobreak]

A „/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 kikapcsolva

echo 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 kikapcsolva

rem 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:

if else

Pé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 kikapcsolva

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