Pri dávkovom skriptovaní v systéme Windows môžu vývojári riadiť tok vašich skriptov pomocou rôznych techník alebo metód na zavedenie prestávok alebo čakaní. Príkazy „pause“ a „wait“ sú dva spôsoby ovládania toku vašich dávkových súborov. Príkaz „pause“ zastaví vykonávanie dávkového súboru, pričom sa zobrazí správa „Pokračujte stlačením ľubovoľného klávesu...“. Dávkový súbor nemožno spustiť, kým používateľ nestlačí kláves. Vykonávanie dávkového súboru je pozastavené na počet sekúnd, ktorý určí inštrukcia čakania.
Príkaz na pozastavenie dávkového súboru
Príkaz „pauza“ dávkového súboru zastaví spustenie dávkového súboru a zároveň zobrazí správu na príkazovom riadku. Dávkový súbor sa nespustí, kým používateľ nestlačí kláves. Užitočný je príkaz, ktorý zastaví ďalšie vykonávanie. Spustenie dávkového súboru priamo a zobrazenie požadovaného výstupu na obrazovke je prospešné.
Syntax príkazu „pause“ je:
Pauza
Vyzvite používateľa na zadanie
Príkaz „pauza“ v nasledujúcom dávkovom skripte zobrazuje správu „Pokračujte stlačením ľubovoľného klávesu...“, keď používateľ spustí tento dávkový súbor. Predtým, ako sa dávkový súbor presunie na príkaz „dir“, musí používateľ stlačiť kláves.
@echo vypnuté
rem Tento dávkový súbor sa pozastaví, aby používateľ mohol stlačiť kláves.
echo Dobrý deň, vitajte v ukážke príkazu PAUSE.
echo Vykonávanie skriptu pokračuje po pauze.
pauza
rem Tento dávkový súbor pokračuje ďalším príkazom.
echo Ďakujem!
vy
Keď používateľ stlačí ľubovoľný kláves pomocou klávesnice, tento dávkový proces pokračuje:
Príkaz čakania na dávkový súbor
Kód, ktorý ste poskytli, je dávkový súbor, ktorý otvorí dva programy: Poznámkový blok a Maľovanie. Kód je nasledovný:
@echo vypnutéecho Spustenie prvého programu.
START /B /WAIT notepad.exe
echo Poznámkový blok Úspešne otvorený na pozadí
echo Spustenie druhého programu.
START /WAIT mspaint.exe
echo Farba je úspešne otvorená.
cmd /k
Prvý riadok „@echo off“ zabraňuje dávkovému súboru zobrazovať príkazy pri ich vykonávaní.
Užívateľ je jednoducho informovaný, že prvý program sa spúšťa v druhom riadku, ktorý je „echo Starting First Program“.
Tretí riadok „START /B /WAIT notepad.exe“ otvorí program Poznámkový blok v okne na pozadí a pred pokračovaním čaká na jeho dokončenie. Prepínač „/B“ hovorí príkazu START, aby spustil program v okne na pozadí, a prepínač „/WAIT“ hovorí príkazu START, aby pred pokračovaním počkal na dokončenie programu.
Štvrtý riadok obsahuje echo Poznámkový blok. Keď sa Poznámkový blok úspešne otvorí na pozadí, iba upozorní používateľa správou.
Piaty riadok, „echo Starting Second Program“, jednoducho zobrazí správu pre používateľa, že sa spúšťa druhý program.
Šiesty riadok „START /WAIT mspaint.exe“ otvorí program Paint v okne na pozadí a nečaká na jeho dokončenie, kým bude pokračovať.
Siedmy riadok „echo The Paint is Opened successful“ jednoducho zobrazuje používateľovi správu, že Paint bol úspešne otvorený.
Ôsmy riadok, „cmd /k“, otvorí nové okno príkazového riadka a ponechá aktuálne okno príkazového riadka otvorené.
Použitie slučky pre vlastné oneskorenia
Môžeme použiť slučku pre vlastné oneskorenia v dávkovom procese. Tu je príklad:
V tomto príklade sa prvé hlásenie zobrazí používateľovi pri spustení tohto dávkového súboru. Prvá správa sa potom zobrazí ešte raz, keď začne cyklus „pre“. Príkaz timeout zastaví dávkový súbor na jednu sekundu pred zobrazením druhej správy. Konečná správa sa potom zobrazí po celkovo 10 opakovaniach.
@echo vypnutéecho Ukážka oneskorenia pomocou slučky
pre /l %%i v (1,1,10) do (
timeout /t 1 /nobreak > nul
echo Táto správa sa zobrazí po %%i sekundách
)
echo Táto správa zobrazila 10-sekundové oneskorenie.
Použitie časového limitu pre oneskorenie
Príkaz časového limitu dávkového súboru pozastaví vykonávanie dávkového súboru na vopred určený počet sekúnd. Syntax je uvedená tu:
časový limit /tPrepínač „/t“ určuje čas čakania v sekundách. Prepínač „/nobreak“ deaktivuje stlačenie klávesu používateľom, aby sa prerušilo oneskorenie.
Príkaz „timeout“ možno použiť na:
- Odložte spustenie dávkového súboru na vopred určený čas
- Zabráňte prerušeniu akcie dávkového súboru používateľom
- Vytvorte užívateľsky prívetivejšie prostredie tým, že zabránite tomu, aby používateľ musel stlačiť kláves, aby mohol pokračovať
Napríklad nasledujúci dávkový súbor sa pozastaví na 10 sekúnd:
@echo vypnutéecho Dobrý deň, vykonávanie skriptu pokračuje po 10 sekundách oneskorenia
časový limit /t 10
echo Ďakujem!
Ako je znázornené na nasledujúcom obrázku, časovač beží a čaká, kým používateľ preruší príkaz „timeout“ stlačením ľubovoľného klávesu. Ak používateľ stlačí ľubovoľný kláves, proces sa zastaví a presunie sa na nasledujúci príkaz v dávkovom súbore:
Používateľ na nasledujúcej snímke obrazovky preruší príkaz „timeout“ po 5 sekundách, čo má za následok zobrazenie „Ďakujem!“ správa:
Nasledujúca snímka obrazovky ukazuje, ako „Ďakujem!“ vytlačenie správy na obrazovke trvá 10 sekúnd, ak koncový používateľ nepreruší pokyn na časový limit:
Tu je aktualizovaný kód, ktorý bol upravený tak, aby obsahoval prepínač bez prerušenia, ktorý bráni koncovému používateľovi prerušiť proces dávkového súboru:
@echo vypnutérem Tento dávkový súbor sa pozastaví na 10 sekúnd
echo Dobrý deň, vykonávanie skriptu pokračuje po 10 sekundách oneskorenia
časový limit /t 10 /nobreak
rem Po 10 sekundách sa tento príkaz zobrazí na obrazovke s výzvou
echo Ďakujem!
Tu je výstup predchádzajúceho kódu:
Príkazový riadok vyzve používateľa, aby zadal buď Y alebo N, ak používateľ použije príkaz „CTRL+C“. Ak používateľ klikne na Y, táto dávková úloha sa zastaví:
Príkazy „pause“, „wait“ a „timeout“ sú spôsoby, ako ovládať tok našich skriptov. Spustenie skriptu je pozastavené, keď sa použije príkaz „pause“, a zastaví sa na vopred určený čas, keď sa použije príkaz „timeout“.
Použitie podmienených príkazov na riadenie toku
Podmienené príkazy sú najčastejšie uskutočniteľnou technikou, ktorá sa používa na úpravu toku skriptu na základe určitých okolností. Na základe toho, či je podmienka pravdivá alebo nepravdivá, príkaz „if“ vykoná jednu z dvoch častí kódu. Vyhlásenie „ak“ je štruktúrované takto:
ifPríklad:
Otvorte Poznámkový blok alebo ľubovoľný textový editor podľa vlastného výberu a napíšte nasledujúci kód, ktorý inicializuje hodnotu premennej inputValue na 1 v treťom riadku. Hodnota premennej inputValue sa potom skontroluje pomocou príkazu „if“ v čase spustenia, aby sa zistilo, či sa rovná 1, 2 alebo 3. Ak áno, na obrazovke príkazového riadka sa vytlačí príslušná správa. Ak nie, zobrazí sa posledná správa. V podmienenom príkaze známom ako „if“ sa skontroluje vstupná hodnota premennej, či sa rovná 1, 2 alebo 3. Ak áno, vykoná sa jeden z dvoch blokov kódu. Ak je podmienka pravdivá, podmienený príkaz nerobí nič.
@echo vypnutérem Tento skript testuje premennú inputValue oproti hodnotám 1, 2 a 3.
nastavte inputValue=1
if '%inputValue%'=='1' (
echo Vstupná hodnota sa rovná 1.
) else if '%inputValue%'=='2' (
echo Vstupná hodnota sa rovná 2.
) else if '%inputValue%'=='3' (
echo Vstupná hodnota sa rovná 3.
) inak (
echo Premenná inputValue sa nerovná 1, 2 alebo 3.
)
Výkon:
Záver
Tok skriptov môže byť riadený a procesy môžu byť automatizované v operačnom systéme Windows pomocou príkazov, slučiek a podmienených príkazov ako „if“. Vývojári môžu zastaviť vykonávanie skriptu alebo pridať oneskorenia pomocou príkazu „pause“ pomocou „timeout“ alebo „ping“. Hoci v dávkovom skriptovaní nie je zabudovaný príkaz „switch“, môžeme ho simulovať pomocou výrazov „if“ a „else if“. Testovanie je rozhodujúce, aby sa zabezpečilo, že tieto skripty fungujú tak, ako bolo zamýšľané v príslušnom kontexte. Tieto skripty sú užitočné pre automatizáciu, správu systému a manipuláciu so súbormi.