Pri paketnem skriptiranju v sistemu Windows lahko razvijalci nadzorujejo potek vaših skriptov z različnimi tehnikami ali metodami za uvedbo premorov ali čakanj. Ukaza »premor« in »počakaj« sta dva načina za nadzor pretoka vaših paketnih datotek. Ukaz 'pavza' ustavi izvajanje paketne datoteke, medtem ko prikaže sporočilo 'Pritisnite katero koli tipko za nadaljevanje ...'. Paketna datoteka se ne more zagnati, dokler uporabnik ne pritisne tipke. Izvajanje paketne datoteke je začasno ustavljeno za toliko sekund, kot je navedeno v navodilu čakanja.
Ukaz za premor paketne datoteke
Ukaz paketne datoteke »pavza« ustavi izvajanje paketne datoteke, medtem ko prikaže sporočilo v ukazni vrstici. Paketna datoteka se ne bo zagnala, dokler uporabnik ne pritisne tipke. Ukaz, ki ustavi naslednjo izvedbo, je koristen. Koristno je neposredno zagnati paketno datoteko in videti želeni izhod na zaslonu.
Sintaksa ukaza “pause” je:
Pavza
Pozovi uporabnika za vnos
Ukaz »pause« v naslednjem paketnem skriptu prikaže sporočilo »Pritisnite katero koli tipko za nadaljevanje ...«, ko uporabnik zažene to paketno datoteko. Preden se paketna datoteka premakne na ukaz »dir«, mora uporabnik pritisniti tipko.
@echo izklopljen
rem Ta paketna datoteka se ustavi, da uporabnik pritisne tipko.
echo Pozdravljeni, dobrodošli v predstavitvi ukaza PAUSE.
echo Izvajanje skripta se po premoru nadaljuje.
pavza
rem Ta paketna datoteka se nadaljuje z naslednjim ukazom.
echo Hvala!
ti
Ko uporabnik pritisne katero koli tipko s tipkovnico, se ta paketni postopek nadaljuje:
Ukaz za čakanje na paketno datoteko
Koda, ki ste jo posredovali, je paketna datoteka, ki odpre dva programa: Notepad in Paint. Koda je naslednja:
@echo izklopljenecho Zagon prvega programa.
START /B /POČAKAJTE notepad.exe
echo Beležnica Uspešno odprta v ozadju
echo Zagon drugega programa.
ZAGNI / POČAKAJ mspaint.exe
echo Paint je uspešno odprt.
cmd /k
Prva vrstica, »@echo off«, preprečuje, da bi paketna datoteka prikazala ukaze med njihovim izvajanjem.
Uporabnik je preprosto obveščen, da se prvi program zažene z drugo vrstico, ki je 'echo Starting First Program'.
Tretja vrstica, »START /B /WAIT notepad.exe«, odpre program Notepad v oknu v ozadju in počaka, da se konča, preden nadaljuje. Stikalo “/B” pove ukazu START, da zažene program v oknu v ozadju, stikalo “/WAIT” pa ukazu START pove, naj počaka, da se program konča, preden nadaljuje.
Četrta vrstica bere echo Notepad. Ko se Beležnica uspešno odpre v ozadju, uporabnika le obvesti s sporočilom.
Peta vrstica, »echo Starting Second Program«, preprosto prikaže sporočilo uporabniku, da se zaganja drugi program.
Šesta vrstica, »START /WAIT mspaint.exe«, odpre program Paint v oknu v ozadju in ne počaka, da se konča, preden nadaljuje.
Sedma vrstica, »echo The Paint is Opened successfully«, preprosto prikaže sporočilo uporabniku, da je bil Paint uspešno odprt.
Osma vrstica, »cmd /k«, odpre novo okno ukaznega poziva in ohrani trenutno okno ukaznega poziva odprto.
Uporaba zanke za zakasnitve po meri
Za zamude po meri v paketnem procesu lahko uporabimo zanko. Tukaj je primer:
V tem primeru je prvo sporočilo prikazano uporabniku, ko se zažene ta paketna datoteka. Prvo sporočilo se nato prikaže še enkrat, ko se začne zanka »za«. Ukaz časovne omejitve ustavi paketno datoteko za eno sekundo, preden prikaže drugo sporočilo. Končno sporočilo se nato prikaže po skupno 10 ponovitvah.
@echo izklopljenecho Prikaz zakasnitve z uporabo zanke
za /l %%i v (1,1,10) do (
časovna omejitev /t 1 /nobreak > nul
echo To sporočilo se prikaže po %%i sekundah
)
echo To sporočilo je prikazalo 10-sekundno zakasnitev.
Uporaba časovne omejitve za zakasnitev
Ukaz za časovno omejitev paketne datoteke začasno ustavi izvajanje paketne datoteke za vnaprej določeno število sekund. Sintaksa je podana tukaj:
časovna omejitev /tStikalo “/t” določa čas čakanja v sekundah. Stikalo “/nobreak” onemogoči pritiske tipk s strani uporabnika za prekinitev zakasnitve.
Ukaz »timeout« lahko uporabite za:
- Odložite izvedbo paketne datoteke za vnaprej določeno časovno obdobje
- Preprečite, da bi uporabnik prekinil dejanje paketne datoteke
- Ustvarite uporabniku prijaznejšo izkušnjo tako, da uporabniku preprečite, da bi moral pritisniti tipko za nadaljevanje
Naslednja paketna datoteka se na primer ustavi za 10 sekund:
@echo izklopljenecho Pozdravljeni, izvajanje skripta se nadaljuje po 10 sekundah zakasnitve
časovna omejitev /t 10
echo Hvala!
Kot je prikazano na naslednjem posnetku zaslona, se časovnik izvaja in čaka, da uporabnik prekine ukaz »timeout« s pritiskom na katero koli tipko. Če uporabnik pritisne katero koli tipko, se postopek ustavi in premakne na naslednji ukaz v paketni datoteki:
Uporabnik na naslednjem posnetku zaslona po 5 sekundah prekine ukaz »timeout«, kar povzroči prikaz »Hvala!« sporočilo:
Naslednji posnetek zaslona prikazuje, kako se »Hvala!« sporočilo traja 10 sekund, da se natisne na zaslon, če končni uporabnik ne prekine navodila za časovno omejitev:
Tukaj je posodobljena koda, ki je bila spremenjena tako, da vključuje stikalo brez prekinitve, ki končnemu uporabniku prepreči prekinitev postopka paketne datoteke:
@echo izklopljenrem Ta paketna datoteka se ustavi za 10 sekund
echo Pozdravljeni, izvajanje skripta se nadaljuje po 10 sekundah zakasnitve
časovna omejitev /t 10 /nobreak
rem Po 10 sekundah bo ta ukaz prikazan na pozivnem zaslonu
echo Hvala!
Tukaj je rezultat prejšnje kode:
Ukazna vrstica pozove uporabnika, da vnese Y ali N, če uporabnik uporabi ukaz »CTRL+C«. Če uporabnik klikne Y, se to paketno opravilo ustavi:
Ukazi »pause«, »wait« in »timeout« so načini za nadzor poteka naših skriptov. Izvajanje skripta je začasno ustavljeno, ko je uporabljen ukaz »pause«, in je ustavljen za vnaprej določen čas, ko je uporabljen ukaz »timeout«.
Uporaba pogojnih izjav za nadzor poteka
Pogojni stavki so najpogosteje izvedljiva tehnika, ki se uporablja za spreminjanje toka skripta na podlagi določene okoliščine. Glede na to, ali je pogoj resničen ali napačen, stavek »if« izvede enega od dveh delov kode. Izjava »če« je strukturirana na naslednji način:
ifprimer:
Odprite beležnico ali kateri koli urejevalnik besedil po vaši izbiri in napišite naslednjo kodo, ki inicializira vrednost spremenljivke inputValue na 1 v tretji vrstici. Vrednost spremenljivke inputValue se nato preveri s stavkom »if« v času izvajanja, da se ugotovi, ali je enaka 1, 2 ali 3. Če je tako, se na zaslonu ukazne vrstice natisne ustrezno sporočilo. Če ni, se prikaže končno sporočilo. V pogojnem stavku, znanem kot 'if', se vhodna vrednost spremenljivke preveri, ali je enaka 1, 2 ali 3. Če je enaka, se nato izvede eden od dveh blokov kode. Če je pogoj resničen, pogojni stavek ne naredi ničesar.
@echo izklopljenrem Ta skript preizkusi spremenljivko inputValue glede na vrednosti 1, 2 in 3.
nastavite inputValue=1
if '%inputValue%'=='1' (
echo Vhodna vrednost je enaka 1.
) drugače, če je '%inputValue%'=='2' (
echo Vhodna vrednost je enaka 2.
) drugače, če je '%inputValue%'=='3' (
echo Vhodna vrednost je enaka 3.
) drugače (
echo Spremenljivka inputValue ni enaka 1, 2 ali 3.
)
Izhod:
Zaključek
Potek skripta je mogoče nadzorovati, procese pa je mogoče avtomatizirati v operacijskem sistemu Windows z uporabo ukazov, zank in pogojnih stavkov, kot je »if«. Razvijalci lahko ustavijo izvajanje skripta ali dodajo zakasnitve z ukazom »pause« z uporabo »timeout« ali »ping«. Čeprav v paketnem skriptiranju ni vgrajenega stavka »switch«, ga lahko simuliramo z izrazoma »if« in »else if«. Testiranje je ključnega pomena za zagotovitev, da ti skripti delujejo, kot je predvideno, v ustreznem kontekstu. Ti skripti so uporabni za avtomatizacijo, upravljanje sistema in manipulacijo datotek.