Příkazy pro pozastavení a čekání dávkového souboru: Jak ovládat tok vašich skriptů

Prikazy Pro Pozastaveni A Cekani Davkoveho Souboru Jak Ovladat Tok Vasich Skriptu



Při dávkovém skriptování ve Windows mohou vývojáři řídit tok vašich skriptů pomocí různých technik nebo metod k zavedení pauz nebo čekání. Příkazy „pause“ a „wait“ jsou dva způsoby, jak řídit tok vašich dávkových souborů. Příkaz „pause“ zastaví provádění dávkového souboru a zobrazí zprávu „Pokračujte stisknutím libovolné klávesy…“. Dávkový soubor nelze spustit, dokud uživatel nestiskne klávesu. Provádění dávkového souboru je pozastaveno na počet sekund indikovaný instrukcí čekání.

Příkaz pro pozastavení dávkového souboru

Příkaz „pause“ dávkového souboru zastaví provádění dávkového souboru a zobrazí zprávu na příkazovém řádku. Dávkový soubor se nespustí, dokud uživatel nestiskne klávesu. Užitečný je příkaz, který zastaví další provádění. Spuštění dávkového souboru přímo a zobrazení požadovaného výstupu na obrazovce je výhodné.







Syntaxe příkazu „pause“ je:



Pauza

Požádejte uživatele o zadání

Když uživatel spustí tento dávkový soubor, příkaz „pause“ v následujícím dávkovém skriptu zobrazí zprávu „Pokračujte stisknutím libovolné klávesy…“. Než se dávkový soubor přesune na příkaz „dir“, musí uživatel stisknout klávesu.



@echo vypnuto

rem Tento dávkový soubor se pozastaví, aby uživatel mohl stisknout klávesu.

echo Dobrý den, Vítejte v ukázce příkazu PAUSE.

echo Provádění skriptu pokračuje po pauze.

pauza

rem Tento dávkový soubor pokračuje dalším příkazem.

echo Děkuji!

vy





Když uživatel stiskne jakoukoli klávesu pomocí klávesnice, tento dávkový proces pokračuje:



Příkaz čekání na dávkový soubor

Zadaný kód je dávkový soubor, který otevře dva programy: Poznámkový blok a Malování. Kód je následující:

@echo vypnuto

echo Spouštění prvního programu.

START /B /WAIT notepad.exe

echo Poznámkový blok Úspěšně otevřen na pozadí

echo Spouštění druhého programu.

START /WAIT mspaint.exe

echo Malování je úspěšně otevřeno.

cmd /k

První řádek „@echo off“ zabraňuje dávkovému souboru zobrazovat příkazy při jejich provádění.

Uživatel je jednoduše informován, že první program se spouští na druhém řádku, který je „echo Starting First Program“.

Třetí řádek „START /B /WAIT notepad.exe“ otevře program Poznámkový blok v okně na pozadí a čeká na jeho dokončení, než budete pokračovat. Přepínač „/B“ říká příkazu START, aby spustil program v okně na pozadí, a přepínač „/WAIT“ říká příkazu START, aby před pokračováním počkal na dokončení programu.

Čtvrtý řádek uvádí echo Poznámkový blok. Když je Poznámkový blok úspěšně otevřen na pozadí, pouze upozorní uživatele zprávou.

Pátý řádek, „echo Starting Second Program“, jednoduše zobrazuje zprávu pro uživatele, že se spouští druhý program.

Šestý řádek „START /WAIT mspaint.exe“ otevře program Malování v okně na pozadí a nečeká na jeho dokončení, než bude pokračovat.

Sedmý řádek, „echo The Paint is Opened successful“, jednoduše zobrazuje uživateli zprávu, že Paint byl úspěšně otevřen.

Osmý řádek, „cmd /k“, otevře nové okno příkazového řádku a ponechá aktuální okno příkazového řádku otevřené.

Použití smyčky pro vlastní zpoždění

Můžeme použít smyčku pro vlastní zpoždění v dávkovém procesu. Zde je příklad:

V tomto příkladu se uživateli zobrazí první zpráva při spuštění tohoto dávkového souboru. První zpráva se zobrazí ještě jednou, jakmile začne cyklus „pro“. Příkaz timeout zastaví dávkový soubor na jednu sekundu před zobrazením druhé zprávy. Výsledná zpráva se pak zobrazí po celkem 10 iteracích.

@echo vypnuto

echo Ukázka zpoždění pomocí smyčky

pro /l  %%i v (1,1,10) do (

timeout /t 1 /nobreak > nul

echo Tato zpráva se zobrazí po %%i  sekundách

)

echo Tato zpráva zobrazila zpoždění 10 sekund.

Použití časového limitu pro zpoždění

Příkaz časového limitu dávkového souboru pozastaví provádění dávkového souboru na předem určený počet sekund. Syntaxe je uvedena zde:

časový limit /t [/nobreak]

Přepínač „/t“ určuje dobu čekání v sekundách. Přepínač „/nobreak“ deaktivuje stisknutí kláves uživatele, aby se prodleva přerušila.

Příkaz „timeout“ lze použít k:

  • Odložte spuštění dávkového souboru na předem určenou dobu
  • Zabraňte tomu, aby uživatel přerušil akci dávkového souboru
  • Vytvořte uživatelsky přívětivější prostředí tím, že zabráníte tomu, aby uživatel musel stisknout klávesu, aby mohl pokračovat

Například následující dávkový soubor se pozastaví na 10 sekund:

@echo vypnuto

echo Dobrý den, provádění skriptu pokračuje po 10 sekundách zpoždění

časový limit /t 10

echo Děkuji!

Jak ukazuje následující snímek obrazovky, běží časovač a čeká, až uživatel přeruší příkaz „timeout“ stisknutím libovolné klávesy. Pokud uživatel stiskne libovolnou klávesu, proces se zastaví a přejde k dalšímu příkazu v dávkovém souboru:

Uživatel na následujícím snímku obrazovky přeruší příkaz „timeout“ po 5 sekundách, což má za následek zobrazení „Děkuji!“ zpráva:

Následující snímek obrazovky ukazuje, jak „Děkuji!“ Pokud koncový uživatel nepřeruší pokyn k vypršení časového limitu, trvá vytištění zprávy na obrazovce 10 sekund:

Zde je aktualizovaný kód, který byl upraven tak, aby zahrnoval přepínač bez přerušení, který koncovému uživateli zabrání v přerušení procesu dávkového souboru:

@echo vypnuto

rem Tento dávkový soubor se pozastaví na 10 sekund

echo Dobrý den, provádění skriptu pokračuje po 10 sekundách zpoždění

časový limit /t 10 /nobreak

rem Po 10 sekundách se tento příkaz zobrazí na obrazovce s výzvou

echo Děkuji!

Zde je výstup předchozího kódu:

Příkazový řádek vyzve uživatele, aby zadal buď Y nebo N, pokud uživatel použije příkaz „CTRL+C“. Pokud uživatel klikne na Y, tato dávková úloha se zastaví:

Příkazy „pause“, „wait“ a „timeout“ jsou způsoby, jak ovládat tok našich skriptů. Spuštění skriptu je pozastaveno při použití příkazu „pause“ a při použití příkazu „timeout“ je zastaveno na předem stanovenou dobu.

Použití podmíněných příkazů pro řízení toku

Podmíněné příkazy jsou nejběžněji proveditelnou technikou, která se používá k úpravě toku skriptu na základě určitých okolností. Na základě toho, zda je podmínka pravdivá nebo nepravdivá, provede příkaz „if“ jednu ze dvou částí spuštění kódu. Příkaz „if“ má následující strukturu:

if else

Příklad:

Otevřete Poznámkový blok nebo libovolný textový editor podle vašeho výběru a napište následující kód, který inicializuje hodnotu proměnné inputValue na 1 ve třetím řádku. Hodnota proměnné inputValue se pak zkontroluje pomocí příkazu „if“ za běhu, aby se zjistilo, zda se rovná 1, 2 nebo 3. Pokud ano, na obrazovce příkazového řádku se vytiskne příslušná zpráva. Pokud tomu tak není, zobrazí se poslední zpráva. V podmíněném příkazu známém jako „if“ se vstupníHodnota proměnné kontroluje, zda se rovná 1, 2 nebo 3. Pokud ano, provede se jeden ze dvou bloků kódu. Pokud je podmínka pravdivá, podmíněný příkaz nedělá nic.

@echo vypnuto

rem Tento skript testuje proměnnou inputValue proti hodnotám 1, 2 a 3.

nastavte inputValue=1

if '%inputValue%'=='1' (

echo Vstupní hodnota je rovna 1.

) else if '%inputValue%'=='2' (

echo Vstupní hodnota je rovna 2.

) else if '%inputValue%'=='3' (

echo Vstupní hodnota je rovna 3.

) jinak (

echo Proměnná inputValue se nerovná 1, 2 nebo 3.

)

Výstup:

Závěr

Tok skriptů může být řízen a procesy mohou být automatizovány v operačním systému Windows pomocí příkazů, smyček a podmíněných příkazů jako „if“. Vývojáři mohou zastavit provádění skriptu nebo přidat zpoždění pomocí příkazu „pause“ pomocí „timeout“ nebo „ping“. Ačkoli v dávkovém skriptování není vestavěný příkaz „switch“, můžeme jej simulovat pomocí výrazů „if“ a „else if“. Testování je klíčové pro zajištění toho, aby tyto skripty fungovaly tak, jak bylo zamýšleno v příslušném kontextu. Tyto skripty jsou užitečné pro automatizaci, správu systému a manipulaci se soubory.