Príkazy na pozastavenie a čakanie dávkového súboru: Ako ovládať tok vašich skriptov

Prikazy Na Pozastavenie A Cakanie Davkoveho Suboru Ako Ovladat Tok Vasich Skriptov



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

Prepí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:

if else

Prí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.