Batch File Pause og Vent-kommandoer: Sådan kontrollerer du flowet af dine scripts

Batch File Pause Og Vent Kommandoer Sadan Kontrollerer Du Flowet Af Dine Scripts



I batchscripting på Windows kan udviklerne kontrollere flowet af dine scripts ved hjælp af forskellige teknikker eller metoder til at indføre pauser eller ventetider. Kommandoerne 'pause' og 'vent' er to måder at kontrollere flowet af dine batchfiler på. Kommandoen 'pause' stopper udførelsen af ​​en batchfil, mens meddelelsen 'Tryk på en vilkårlig tast for at fortsætte...' vises. Batchfilen kan ikke køre, før brugeren trykker på en tast. Batchfilens udførelse afbrydes i det antal sekunder, der er angivet af venteinstruktionen.

Batch File Pause Kommando

En batchfils 'pause'-kommando stopper udførelse af batchfilen, mens meddelelsen vises på kommandolinjen. Batchfilen kører ikke, før brugeren trykker på en tast. Kommandoen, der stopper den næste udførelse, er nyttig. Det er en fordel at køre batchfilen direkte og se det ønskede output vises på skærmen.







Syntaksen for 'pause'-kommandoen er:



Pause

Bed brugeren om input

'Pause'-kommandoen i det følgende batchscript viser meddelelsen 'Tryk på en vilkårlig tast for at fortsætte...', når brugeren kører denne batchfil. Før batchfilen går videre til kommandoen 'dir', skal brugeren trykke på en tast.



@ekko slukket

rem Denne batchfil holder pause, så brugeren kan trykke på en tast.

echo Hej, Velkommen til PAUSE kommando demonstration.

ekko Script-udførelsen fortsætter efter pausen.

pause

rem Denne batchfil fortsætter med den næste kommando.

echo Tak!

du





Når brugeren trykker på en tast ved hjælp af tastaturet, fortsætter denne batchproces:



Batch File Vent kommando

Den kode, du har angivet, er en batch-fil, der åbner to programmer: Notesblok og Paint. Koden er som følger:

@ekko slukket

echo Starter det første program.

START /B /WAIT notepad.exe

echo Notesblok Åbnet i baggrunden med succes

echo Starter andet program.

START /WAIT mspaint.exe

echo Malingen er åbnet med succes.

cmd /k

Den første linje, '@echo off', forhindrer batchfilen i at vise kommandoerne, mens de udføres.

Brugeren informeres blot om, at det første program startes af den anden linje, som er 'echo Starting First Program'.

Den tredje linje, 'START /B /WAIT notepad.exe', åbner Notepad-programmet i et baggrundsvindue og venter på, at det er færdigt, før du fortsætter. '/B'-kontakten fortæller START-kommandoen at køre programmet i et baggrundsvindue, og '/WAIT'-kontakten fortæller START-kommandoen at vente på, at programmet er færdig, før du fortsætter.

Den fjerde linje læser ekko Notesblok. Når Notesblok åbnes i baggrunden, giver det blot brugeren besked med en besked.

Den femte linje, 'echo Starting Second Program', viser blot en besked til brugeren om, at det andet program er ved at blive startet.

Den sjette linje, 'START /WAIT mspaint.exe', åbner Paint-programmet i et baggrundsvindue og venter ikke på, at det er færdigt, før det fortsætter.

Den syvende linje, 'echo The Paint is opened successfully', viser blot en besked til brugeren om, at malingen er blevet åbnet.

Den ottende linje, 'cmd /k', åbner et nyt kommandopromptvindue og holder det aktuelle kommandopromptvindue åbent.

Brug af en sløjfe til brugerdefinerede forsinkelser

Vi kan bruge en loop til tilpassede forsinkelser i batchprocessen. Her er et eksempel:

I dette eksempel vises den første besked til brugeren, når denne batchfil køres. Den første meddelelse vises derefter igen, når 'for'-løkken begynder. Timeout-kommandoen stopper batchfilen i et sekund, før den anden meddelelse vises. Den endelige besked vises derefter efter i alt 10 iterationer.

@ekko slukket

ekko Demonstration af Delay ved hjælp af Loop

for /l  %%i i (1,1,10) do (

timeout /t 1 /nobreak > nul

echo Denne meddelelse vises efter %%i  sekund(er)

)

echo Denne meddelelse viste en 10-sekunders forsinkelse.

Brug af timeout for forsinkelse

En batchfils timeoutkommando sætter udførelse af batchfil på pause i et forudbestemt antal sekunder. Syntaksen er angivet her:

timeout /t [/nobreak]

'/t'-kontakten angiver, hvor lang tid der skal ventes i sekunder. '/nobreak'-kontakten deaktiverer tastetryk fra brugeren for at bryde forsinkelsen.

Kommandoen 'timeout' kan bruges til at:

  • Udsæt eksekveringen af ​​en batchfil i en forudbestemt periode
  • Undgå, at en batchfilhandling bliver afbrudt af brugeren
  • Skab en mere brugervenlig oplevelse ved at forhindre, at brugeren skal trykke på en tast for at fortsætte

For eksempel stopper følgende batchfil i 10 sekunder:

@ekko slukket

echo Hej, Script-udførelsen fortsætter efter 10 sekunders forsinkelse

timeout /t 10

echo Tak!

Som vist på det følgende skærmbillede kører en timer og venter på, at brugeren afbryder 'timeout'-kommandoen ved at trykke på en vilkårlig tast. Hvis brugeren trykker på en vilkårlig tast, stopper processen og går videre til den næste kommando i batchfilen:

Brugeren i det følgende skærmbillede afbryder 'timeout'-kommandoen efter 5 sekunder, hvilket resulterer i visningen af ​​'Tak!' besked:

Følgende skærmbillede viser, hvordan 'Tak!' meddelelsen tager 10 sekunder at udskrive på skærmen, hvis slutbrugeren ikke afbryder timeout-instruktionen:

Her er den opdaterede kode, der er blevet ændret til at inkludere no-break-kontakten, der forhindrer slutbrugeren i at afbryde en batchfilproces:

@ekko slukket

rem Denne batchfil holder pause i 10 sekunder

echo Hej, Script-udførelsen fortsætter efter 10 sekunders forsinkelse

timeout /t 10 /nobreak

rem Efter 10 sekunder vil denne kommando blive vist på promptskærmen

echo Tak!

Her er outputtet af den forrige kode:

Kommandolinjen beder brugeren om at skrive enten Y eller N, hvis brugeren bruger kommandoen 'CTRL+C'. Hvis brugeren klikker på Y, stoppes dette batchjob:

Kommandoerne 'pause', 'vent' og 'timeout' er måderne til at kontrollere flowet af vores scripts. Scriptet suspenderes fra at køre, når 'pause'-kommandoen bruges, og det stoppes i et forudbestemt tidsrum, når 'timeout'-kommandoen bruges.

Brug af betingede erklæringer til flowkontrol

Betingede udsagn er den mest almindeligt mulige teknik, der bruges til at ændre et scripts flow baseret på en bestemt omstændighed. Baseret på om en betingelse er sand eller falsk, udfører 'if'-sætningen en af ​​to stykker kodeeksekvering. 'Hvis'-erklæringen er struktureret som følger:

hvis ellers

Eksempel:

Åbn Notesblok eller en hvilken som helst teksteditor efter eget valg, og skriv følgende kode, som initialiserer værdien af ​​inputValue-variablen til 1 i tredje linje. Værdien af ​​inputValue-variablen kontrolleres derefter ved hjælp af en 'if'-sætning på køretid for at se, om den er lig med 1, 2 eller 3. Hvis det er tilfældet, udskrives den relevante meddelelse på kommandolinjeskærmen. Hvis den ikke er det, vises den endelige meddelelse. I en betinget sætning kendt som 'if', kontrolleres en variabels inputValue for at se, om den er lig med 1, 2 eller 3. Hvis den gør det, udføres en af ​​to kodeblokke derefter. Hvis betingelsen er sand, gør den betingede erklæring intet.

@ekko slukket

rem Dette script tester variablen inputValue mod værdierne 1, 2 og 3.

sæt inputValue=1

hvis '%inputValue%'=='1' (

ekko Indgangsværdien er lig med 1.

) ellers hvis '%inputValue%'=='2' (

ekko Indgangsværdien er lig med 2.

) ellers hvis '%inputValue%'=='3' (

ekko Indgangsværdien er lig med 3.

) andet (

echo Variablen inputValue er ikke lig med 1, 2 eller 3.

)

Produktion:

Konklusion

Scriptflow kan kontrolleres, og processer kan automatiseres på Windows-operativsystemet ved hjælp af kommandoer, loops og betingede sætninger som 'if'. Udviklere kan stoppe et scripts eksekvering eller tilføje forsinkelser med 'pause'-kommandoen ved at bruge 'timeout' eller 'ping'. Selvom der ikke er nogen indbygget 'switch'-sætning i batchscripting, kan vi simulere det med 'if' og 'else if'-udtryk. Test er afgørende for at sikre, at disse scripts fungerer efter hensigten i den relevante kontekst. Disse scripts er nyttige til automatisering, systemstyring og filmanipulation.