Batch-fil Pausa och vänta kommandon: Hur man kontrollerar flödet av dina skript

Batch Fil Pausa Och Vanta Kommandon Hur Man Kontrollerar Flodet Av Dina Skript



I batchskript på Windows kan utvecklarna kontrollera flödet av dina skript med hjälp av olika tekniker eller metoder för att införa pauser eller väntan. Kommandona 'pausa' och 'vänta' är två sätt att kontrollera flödet av dina batchfiler. Kommandot 'pausa' stoppar exekveringen av en batchfil samtidigt som meddelandet 'Tryck på valfri tangent för att fortsätta...' visas. Batchfilen kan inte köras förrän användaren trycker på en tangent. Batchfilens körning avbryts under det antal sekunder som anges av vänteinstruktionen.

Batch File Paus Kommando

En batchfils 'paus'-kommando stoppar körningen av batchfilen medan meddelandet visas på kommandoraden. Batchfilen körs inte förrän användaren trycker på en tangent. Kommandot som stoppar nästa körning är användbart. Att köra batchfilen direkt och se önskad utdata visas på skärmen är fördelaktigt.







Syntaxen för kommandot 'paus' är:



Paus

Be användaren om inmatning

Kommandot 'pausa' i följande batchskript visar meddelandet 'Tryck på valfri tangent för att fortsätta...' när användaren kör denna batchfil. Innan batchfilen går vidare till kommandot 'dir' måste användaren trycka på en tangent.



@eko av

rem Den här batchfilen pausar för användaren att trycka på en tangent.

echo Hej, Välkommen till PAUSE kommandodemonstration.

echo Script körning fortsätter efter paus.

paus

rem Denna batchfil fortsätter med nästa kommando.

echo Tack!

du





När användaren trycker på valfri tangent med tangentbordet fortsätter denna batchprocess:



Vänta kommando för batchfil

Koden som du angav är en batchfil som öppnar två program: Anteckningar och Paint. Koden är som följer:

@eko av

echo Startar första programmet.

START /B /WAIT notepad.exe

echo Notepad Öppnades i bakgrunden

echo Startar andra programmet.

STARTA /WAIT mspaint.exe

echo Färgen har öppnats framgångsrikt.

cmd /k

Den första raden, '@echo off', förhindrar att batchfilen visar kommandona när de exekveras.

Användaren informeras helt enkelt om att det första programmet startas av den andra raden som är 'echo Startar första programmet'.

Den tredje raden, 'START /B /WAIT notepad.exe', öppnar programmet Anteckningar i ett bakgrundsfönster och väntar på att det ska avslutas innan du fortsätter. '/B'-omkopplaren talar om för START-kommandot att köra programmet i ett bakgrundsfönster, och '/WAIT'-omkopplaren talar om för START-kommandot att vänta tills programmet avslutas innan du fortsätter.

Den fjärde raden läser echo Notepad. När Anteckningar framgångsrikt öppnas i bakgrunden, meddelar det bara användaren med ett meddelande.

Den femte raden, 'echo Starting Second Program', visar helt enkelt ett meddelande till användaren att det andra programmet startas.

Den sjätte raden, 'START /WAIT mspaint.exe', öppnar Paint-programmet i ett bakgrundsfönster och väntar inte på att det ska slutföra innan du fortsätter.

Den sjunde raden, 'echo att färgen har öppnats framgångsrikt', visar helt enkelt ett meddelande till användaren att färgen har öppnats framgångsrikt.

Den åttonde raden, 'cmd /k', öppnar ett nytt kommandotolksfönster och håller det aktuella kommandotolksfönstret öppet.

Använda en loop för anpassade fördröjningar

Vi kan använda en loop för anpassade fördröjningar i batchprocessen. Här är ett exempel:

I det här exemplet visas det första meddelandet för användaren när denna batchfil körs. Det första meddelandet visas sedan en gång till när 'för'-slingan börjar. Timeout-kommandot stoppar batchfilen i en sekund innan det andra meddelandet visas. Det slutliga meddelandet visas sedan efter totalt 10 iterationer.

@eko av

eko Demonstration av fördröjning med loop

för /l  %%i i (1,1,10) do (

timeout /t 1 /nobreak > null

echo Det här meddelandet visas efter %%i  sekund(er)

)

echo Detta meddelande visade en 10-sekunders fördröjning.

Använder Timeout för fördröjning

En batchfils timeout-kommando pausar körningen av batchfil under ett förutbestämt antal sekunder. Syntaxen anges här:

timeout /t [/nobreak]

'/t'-omkopplaren anger hur lång tid i sekunder som ska vänta. '/nobreak'-omkopplaren inaktiverar tangenttryckningarna från användaren för att bryta fördröjningen.

Kommandot 'timeout' kan användas för att:

  • Skjut upp körningen av en batchfil under en förutbestämd tidsperiod
  • Förhindra att en batchfilåtgärd avbryts av användaren
  • Skapa en mer användarvänlig upplevelse genom att förhindra att användaren behöver trycka på en knapp för att fortsätta

Till exempel pausar följande batchfil i 10 sekunder:

@eko av

echo Hej! Skriptkörningen fortsätter efter 10 sekunders fördröjning

timeout /t 10

echo Tack!

Som visas i följande skärmdump körs en timer och väntar på att användaren ska avbryta kommandot 'timeout' genom att trycka på valfri tangent. Om användaren trycker på valfri tangent stoppas processen och går till nästa kommando i batchfilen:

Användaren i följande skärmdump avbryter kommandot 'timeout' efter 5 sekunder, vilket resulterar i att meddelandet 'Tack!' meddelande:

Följande skärmdump visar hur 'Tack!' meddelandet tar 10 sekunder att skriva ut på skärmen om slutanvändaren inte avbryter timeoutinstruktionen:

Här är den uppdaterade koden som har modifierats för att inkludera no-break switchen som hindrar slutanvändaren från att avbryta en batchfilprocess:

@eko av

rem Denna batchfil pausar i 10 sekunder

echo Hej! Skriptkörningen fortsätter efter 10 sekunders fördröjning

timeout /t 10 /nobreak

rem Efter 10 sekunder kommer detta kommando att visas på uppmaningsskärmen

echo Tack!

Här är resultatet av föregående kod:

Kommandoraden uppmanar användaren att skriva antingen Y eller N om användaren använder kommandot 'CTRL+C'. Om användaren klickar på Y stoppas detta batchjobb:

Kommandona 'paus', 'vänta' och 'timeout' är sätten att kontrollera flödet av våra skript. Skriptet stängs av från att köras när 'paus'-kommandot används, och det stoppas under en förutbestämd tid när 'timeout'-kommandot används.

Använda villkorliga uttalanden för flödeskontroll

Villkorliga uttalanden är den vanligaste möjliga tekniken som används för att modifiera ett skripts flöde baserat på en viss omständighet. Baserat på om ett villkor är sant eller falskt, utför 'if'-satsen en av två delar av kodexekvering. 'Om'-satsen är strukturerad enligt följande:

om annat

Exempel:

Öppna Anteckningar eller valfri textredigerare och skriv följande kod som initierar värdet för variabeln inputValue till 1 på den tredje raden. Värdet på variabeln inputValue kontrolleras sedan med hjälp av en 'if'-sats på körtid för att se om det är lika med 1, 2 eller 3. Om så är fallet skrivs det lämpliga meddelandet ut på kommandoradsskärmen. Om det inte är det, visas det sista meddelandet. I en villkorssats känd som 'if', kontrolleras en variabels inputValue för att se om den är lika med 1, 2 eller 3. Om den gör det, exekveras sedan ett av två kodblock. Om villkoret är sant, gör det villkorliga uttalandet ingenting.

@eko av

rem Detta skript testar variabeln inputValue mot värdena 1, 2 och 3.

set inputValue=1

om '%inputValue%'=='1' (

echo Ingångsvärdet är lika med 1.

) annars om '%inputValue%'=='2' (

echo Ingångsvärdet är lika med 2.

) annars om '%inputValue%'=='3' (

echo Ingångsvärdet är lika med 3.

) annat (

echo Variabeln inputValue är inte lika med 1, 2 eller 3.

)

Produktion:

Slutsats

Skriptflödet kan kontrolleras och processer kan automatiseras i Windows-operativsystemet med hjälp av kommandon, loopar och villkorliga uttalanden som 'if'. Utvecklare kan stoppa körningen av ett skript eller lägga till fördröjningar med kommandot 'pausa' genom att använda 'timeout' eller 'ping'. Även om det inte finns någon inbyggd 'switch'-sats i batchscripting, kan vi simulera den med 'if' och 'else if'-uttryck. Testning är avgörande för att säkerställa att dessa skript fungerar som avsett i rätt sammanhang. Dessa skript är användbara för automatisering, systemhantering och filmanipulation.