Mga Batch File Pause at Wait Command: Paano Kontrolin ang Daloy ng Iyong Mga Script

Mga Batch File Pause At Wait Command Paano Kontrolin Ang Daloy Ng Iyong Mga Script



Sa batch scripting sa Windows, makokontrol ng mga developer ang daloy ng iyong mga script gamit ang iba't ibang mga diskarte o pamamaraan upang ipakilala ang mga pag-pause o paghihintay. Ang mga command na 'pause' at 'wait' ay dalawang paraan para kontrolin ang daloy ng iyong mga batch file. Ang command na 'pause' ay huminto sa pagpapatupad ng isang batch file habang ipinapakita ang 'Pindutin ang anumang key upang magpatuloy...' na mensahe. Hindi maaaring tumakbo ang batch file hangga't hindi pinindot ng user ang isang key. Ang pagpapatupad ng batch file ay sinuspinde para sa bilang ng mga segundo na ipinahiwatig ng pagtuturo ng paghihintay.

Batch File Pause Command

Ang command na 'pause' ng batch file ay humihinto sa pagpapatupad ng batch file habang ipinapakita ang mensahe sa command line. Hindi tatakbo ang batch file hanggang sa pinindot ng user ang isang key. Ang utos na huminto sa susunod na pagpapatupad ay kapaki-pakinabang. Ang direktang pagpapatakbo ng batch file at makita ang nais na output na lumabas sa screen ay kapaki-pakinabang.







Ang syntax ng command na 'pause' ay:



I-pause

I-prompt ang User para sa Input

Ang command na “pause” sa sumusunod na batch script ay nagpapakita ng mensaheng “Press any key to continue…” kapag pinatakbo ng user ang batch file na ito. Bago lumipat ang batch file sa command na 'dir', dapat pindutin ng user ang isang key.



@echo off

rem Ang batch file na ito ay naka-pause para pindutin ng user ang isang key.

echo Hello, Maligayang pagdating sa PAUSE command demonstration.

echo Ang pagpapatupad ng script ay nagpapatuloy pagkatapos ng pag-pause.

huminto

rem Ang batch file na ito ay nagpapatuloy sa susunod na command.

echo Salamat!

ikaw





Kapag pinindot ng user ang anumang key gamit ang keyboard, magpapatuloy ang proseso ng batch na ito:



Batch File Wait Command

Ang code na iyong ibinigay ay isang batch file na nagbubukas ng dalawang programa: Notepad at Paint. Ang code ay ang mga sumusunod:

@echo off

echo Simula Unang Programa.

MAGSIMULA /B /WAIT notepad.exe

echo Notepad Matagumpay na nabuksan sa Background

echo Simula Ikalawang Programa.

MAGSIMULA /WAIT mspaint.exe

echo Matagumpay na Nabuksan ang Pintura.

cmd /k

Ang unang linya, '@echo off', ay pumipigil sa batch file mula sa pagpapakita ng mga command habang isinasagawa ang mga ito.

Ang gumagamit ay ipinaalam lamang na ang unang programa ay inilunsad ng pangalawang linya na 'echo Starting First Program'.

Ang ikatlong linya, 'START /B /WAIT notepad.exe', ay bubukas sa Notepad program sa isang window sa background at hihintayin itong matapos bago magpatuloy. Ang switch na '/B' ay nagsasabi sa START command na patakbuhin ang program sa isang background window, at ang '/WAIT' switch ay nagsasabi sa START command na maghintay para matapos ang program bago magpatuloy.

Binabasa ng ikaapat na linya ang echo Notepad. Kapag matagumpay na nabuksan ang Notepad sa background, inaabisuhan lang nito ang user gamit ang isang mensahe.

Ang ikalimang linya, 'echo Starting Second Program', ay nagpapakita lamang ng mensahe sa user na ang pangalawang program ay sinisimulan.

Ang ikaanim na linya, 'START /WAIT mspaint.exe', ay nagbubukas ng Paint program sa isang window sa background at hindi naghihintay na matapos ito bago magpatuloy.

Ang ikapitong linya, 'echo The Paint is Opened successfully', ay nagpapakita lamang ng mensahe sa user na ang Paint ay matagumpay na nabuksan.

Ang ikawalong linya, 'cmd /k', ay nagbubukas ng bagong command prompt window at pinananatiling bukas ang kasalukuyang command prompt window.

Paggamit ng Loop para sa Mga Custom na Pagkaantala

Maaari kaming gumamit ng loop para sa mga custom na pagkaantala sa proseso ng batch. Narito ang isang halimbawa:

Sa halimbawang ito, ang unang mensahe ay ipinapakita sa user kapag ang batch file na ito ay pinapatakbo. Ang unang mensahe ay ipapakita muli sa sandaling magsimula ang 'para sa' loop. Ihihinto ng timeout command ang batch file nang isang segundo bago ipakita ang pangalawang mensahe. Ang huling mensahe ay ipapakita pagkatapos ng kabuuang 10 pag-ulit.

@echo off

echo Pagpapakita ng Pagkaantala gamit ang Loop

para sa /l  %%i sa (1,1,10) gawin (

timeout /t 1 /nobreak > nul

echo Ang mensaheng ito ay ipinapakita pagkatapos ng %%i  (mga) segundo

)

echo Nagpakita ang mensaheng ito ng 10 segundong pagkaantala.

Paggamit ng Timeout para sa Pagkaantala

Pino-pause ng timeout command ng batch file ang pagpapatupad ng batch file para sa isang paunang natukoy na bilang ng mga segundo. Ang syntax ay ibinigay dito:

timeout /t [/nobreak]

Tinutukoy ng switch na '/t' ang dami ng oras sa mga segundo upang maghintay. Hindi pinapagana ng switch na “/nobreak” ang mga pagpindot sa key mula sa user upang maputol ang pagkaantala.

Ang command na 'timeout' ay maaaring gamitin upang:

  • Ipagpaliban ang pagpapatupad ng isang batch file para sa isang paunang natukoy na yugto ng panahon
  • Pigilan ang pagkilos ng batch file mula sa pagkaantala ng user
  • Gumawa ng mas user-friendly na karanasan sa pamamagitan ng pagpigil sa user na pindutin ang isang key upang magpatuloy

Halimbawa, ang sumusunod na batch file ay humihinto ng 10 segundo:

@echo off

echo Kamusta, magpapatuloy ang pagpapatupad ng script pagkatapos ng 10 segundo ng pagkaantala

timeout /t 10

echo Salamat!

Gaya ng ipinakita sa sumusunod na screenshot, tumatakbo ang isang timer at naghihintay sa user na matakpan ang command na 'timeout' sa pamamagitan ng pagpindot sa anumang key. Kung pinindot ng user ang anumang key, hihinto ang proseso at lilipat sa susunod na command sa batch file:

Inaabala ng user sa sumusunod na screenshot ang command na 'timeout' pagkalipas ng 5 segundo, na nagreresulta sa pagpapakita ng 'Salamat!' mensahe:

Ang sumusunod na screenshot ay nagpapakita kung paano ang 'Salamat!' Ang mensahe ay tumatagal ng 10 segundo upang mai-print sa screen kung ang end-user ay hindi makagambala sa pagtuturo ng timeout:

Narito ang na-update na code na binago upang isama ang no-break switch na pumipigil sa end-user sa pag-abala sa isang proseso ng batch file:

@echo off

rem Ang batch file na ito ay humihinto ng 10 segundo

echo Kamusta, magpapatuloy ang pagpapatupad ng script pagkatapos ng 10 segundo ng pagkaantala

timeout /t 10 /nobreak

rem Pagkatapos ng 10 segundo ang command na ito ay ipapakita sa prompt screen

echo Salamat!

Narito ang output ng nakaraang code:

Ang command line ay nag-uudyok sa user na i-type ang alinman sa Y o N kung ang user ay gumagamit ng command na 'CTRL+C'. Kung iki-click ng user ang Y, ang batch job na ito ay ititigil:

Ang mga command na 'pause', 'wait', at 'timeout' ay ang mga paraan para makontrol ang daloy ng aming mga script. Ang script ay nasuspinde sa pagtakbo kapag ang 'pause' na utos ay ginamit, at ito ay itinitigil para sa isang paunang natukoy na tagal ng oras kapag ang 'timeout' na utos ay ginamit.

Paggamit ng Mga Kondisyon na Pahayag para sa Pagkontrol sa Daloy

Ang mga pahayag na may kondisyon ay ang pinakakaraniwang magagawang pamamaraan na ginagamit upang baguhin ang daloy ng script batay sa isang partikular na pangyayari. Batay sa kung tama o mali ang isang kundisyon, ang pahayag na 'kung' ay nagsasagawa ng isa sa dalawang piraso ng pagpapatupad ng code. Ang pahayag na 'kung' ay nakabalangkas tulad ng sumusunod:

kung iba

Halimbawa:

Buksan ang Notepad o anumang text editor na gusto mo at isulat ang sumusunod na code na magpapasimula ng value ng inputValue variable sa 1 sa ikatlong linya. Ang halaga ng variable na inputValue ay susuriin gamit ang isang 'if' na pahayag sa oras ng pagtakbo upang makita kung ito ay katumbas ng 1, 2, o 3. Kung gayon, ang naaangkop na mensahe ay naka-print sa screen ng command line. Kung hindi, ang huling mensahe ay ipapakita. Sa isang conditional statement na kilala bilang isang 'if', ang inputValue ng isang variable ay sinusuri upang makita kung ito ay katumbas ng 1, 2, o 3. Kung ganoon, isa sa dalawang bloke ng code ang isasagawa. Kung totoo ang kundisyon, walang ginagawa ang conditional statement.

@echo off

rem Sinusubukan ng script na ito ang variable na inputValue laban sa mga value na 1, 2, at 3.

itakda ang inputValue=1

kung '%inputValue%'='1' (

echo Ang halaga ng input ay katumbas ng 1.

) kung hindi '%inputValue%'='2' (

echo Ang halaga ng input ay katumbas ng 2.

) kung hindi '%inputValue%'='3' (

echo Ang halaga ng input ay katumbas ng 3.

) iba (

echo Ang variable na inputValue ay hindi katumbas ng 1, 2, o 3.

)

Output:

Konklusyon

Maaaring kontrolin ang daloy ng script, at maaaring i-automate ang mga proseso sa operating system ng Windows gamit ang mga command, loop, at conditional statement tulad ng “if”. Maaaring ihinto ng mga developer ang pagpapatupad ng script o magdagdag ng mga pagkaantala gamit ang command na 'pause' sa pamamagitan ng paggamit ng 'timeout' o 'ping.' Bagama't walang built-in na 'switch' na pahayag sa batch scripting, maaari namin itong gayahin ng 'if' at 'else if' na mga expression. Napakahalaga ng pagsubok upang matiyak na gumagana ang mga script na ito ayon sa nilalayon sa naaangkop na konteksto. Ang mga script na ito ay kapaki-pakinabang para sa automation, pamamahala ng system, at pagmamanipula ng file.