Pause- og ventkommandoer for batchfiler: Slik kontrollerer du flyten av skriptene dine

Pause Og Ventkommandoer For Batchfiler Slik Kontrollerer Du Flyten Av Skriptene Dine



I batch-skripting på Windows kan utviklerne kontrollere flyten av skriptene dine ved å bruke ulike teknikker eller metoder for å introdusere pauser eller ventetider. Kommandoene 'pause' og 'vent' er to måter å kontrollere flyten av batchfilene på. 'Pause'-kommandoen stopper kjøringen av en batchfil mens du viser meldingen 'Trykk på hvilken som helst tast for å fortsette...'. Batchfilen kan ikke kjøres før brukeren trykker på en tast. Kjøringen av batchfilen er suspendert i det antall sekunder som er angitt av venteinstruksjonen.

Pausekommando for batchfil

En batchfils 'pause'-kommando stopper kjøringen av batchfilen mens meldingen vises på kommandolinjen. Batchfilen vil ikke kjøre før brukeren trykker på en tast. Kommandoen som stopper neste kjøring er nyttig. Det er en fordel å kjøre batchfilen direkte og se ønsket utdata vises på skjermen.







Syntaksen til 'pause'-kommandoen er:



Pause

Spør brukeren om inndata

'Pause'-kommandoen i følgende batchskript viser meldingen 'Trykk på hvilken som helst tast for å fortsette...' når brukeren kjører denne batchfilen. Før batchfilen går videre til 'dir'-kommandoen, må brukeren trykke på en tast.



@ekko av

rem Denne batchfilen stopper for brukeren å trykke på en tast.

echo Hei, Velkommen til PAUSE kommandodemonstrasjon.

ekko Skriptkjøring fortsetter etter pausen.

pause

rem Denne batchfilen fortsetter med neste kommando.

ekko Takk!

du





Når brukeren trykker på en tast ved hjelp av tastaturet, fortsetter denne batchprosessen:



Ventekommando for batchfil

Koden du oppga er en batchfil som åpner to programmer: Notepad og Paint. Koden er som følger:

@ekko av

echo Starter første program.

START /B /WAIT notepad.exe

echo Notisblokk åpnet i bakgrunnen

ekko Starter andre program.

START /WAIT mspaint.exe

echo Malingen ble åpnet.

cmd /k

Den første linjen, '@echo off', forhindrer at batchfilen viser kommandoene etter hvert som de utføres.

Brukeren blir ganske enkelt informert om at det første programmet blir lansert av den andre linjen som er 'echo Starting First Program'.

Den tredje linjen, 'START /B /WAIT notepad.exe', åpner Notepad-programmet i et bakgrunnsvindu og venter til det er ferdig før du fortsetter. '/B'-bryteren forteller START-kommandoen å kjøre programmet i et bakgrunnsvindu, og '/WAIT'-bryteren ber START-kommandoen vente til programmet er ferdig før du fortsetter.

Den fjerde linjen leser ekko-notisblokken. Når Notisblokk åpnes i bakgrunnen, varsler den bare brukeren med en melding.

Den femte linjen, 'echo Starting Second Program', viser ganske enkelt en melding til brukeren om at det andre programmet startes.

Den sjette linjen, 'START /WAIT mspaint.exe', åpner Paint-programmet i et bakgrunnsvindu og venter ikke til det er ferdig før du fortsetter.

Den syvende linjen, 'echo The Paint is Opened successfully', viser ganske enkelt en melding til brukeren om at Paint har blitt åpnet.

Den åttende linjen, 'cmd /k', åpner et nytt ledetekstvindu og holder det gjeldende ledetekstvinduet åpent.

Bruke en sløyfe for tilpassede forsinkelser

Vi kan bruke en loop for tilpassede forsinkelser i batchprosessen. Her er et eksempel:

I dette eksemplet vises den første meldingen til brukeren når denne batchfilen kjøres. Den første meldingen vises en gang til når 'for'-sløyfen begynner. Timeout-kommandoen stopper batchfilen i ett sekund før den andre meldingen vises. Den endelige meldingen vises etter totalt 10 iterasjoner.

@ekko av

ekko Demonstrasjon av forsinkelse ved bruk av loop

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

timeout /t 1 /nobreak > null

echo Denne meldingen vises etter %%i  sekund(er)

)

echo Denne meldingen viste en 10-sekunders forsinkelse.

Bruk av tidsavbrudd for forsinkelse

En batchfils timeout-kommando stopper kjøring av batchfil i et forhåndsbestemt antall sekunder. Syntaksen er gitt her:

tidsavbrudd /t [/nobreak]

'/t'-bryteren angir hvor lang tid i sekunder som skal ventes. '/nobreak'-bryteren deaktiverer tastetrykkene fra brukeren for å bryte forsinkelsen.

Kommandoen 'timeout' kan brukes til å:

  • Utsett kjøringen av en batchfil i en forhåndsbestemt tidsperiode
  • Forhindre at en batchfilhandling blir avbrutt av brukeren
  • Skap en mer brukervennlig opplevelse ved å forhindre at brukeren må trykke på en tast for å fortsette

For eksempel stopper følgende batchfil i 10 sekunder:

@ekko av

echo Hei, skriptkjøringen fortsetter etter 10 sekunders forsinkelse

timeout /t 10

ekko Takk!

Som vist i følgende skjermbilde, kjører en tidtaker og venter på at brukeren skal avbryte 'timeout'-kommandoen ved å trykke på en hvilken som helst tast. Hvis brukeren trykker på en tast, stopper prosessen og går til neste kommando i batchfilen:

Brukeren i følgende skjermbilde avbryter 'timeout'-kommandoen etter 5 sekunder, noe som resulterer i visningen av 'Takk!' beskjed:

Følgende skjermbilde viser hvordan 'Takk!' meldingen tar 10 sekunder å skrive ut på skjermen hvis sluttbrukeren ikke avbryter tidsavbruddsinstruksjonen:

Her er den oppdaterte koden som er modifisert for å inkludere no-break-bryteren som stopper sluttbrukeren fra å avbryte en batchfilprosess:

@ekko av

rem Denne batchfilen stopper i 10 sekunder

echo Hei, skriptkjøringen fortsetter etter 10 sekunders forsinkelse

timeout /t 10 /nobreak

rem Etter 10 sekunder vil denne kommandoen vises på ledetekstskjermen

ekko Takk!

Her er utdata fra forrige kode:

Kommandolinjen ber brukeren om å skrive enten Y eller N hvis brukeren bruker kommandoen 'CTRL+C'. Hvis brukeren klikker Y, stoppes denne batchjobben:

Kommandoene 'pause', 'vent' og 'timeout' er måtene å kontrollere flyten av skriptene våre på. Skriptet er suspendert fra å kjøre når 'pause'-kommandoen brukes, og det stoppes i en forhåndsbestemt tidsperiode når 'timeout'-kommandoen brukes.

Bruke betingede erklæringer for flytkontroll

Betingede utsagn er den mest mulige teknikken som brukes for å endre et skripts flyt basert på en viss omstendighet. Basert på om en betingelse er sann eller usann, utfører 'if'-setningen en av to deler av kodekjøring. 'Hvis'-setningen er strukturert som følger:

hvis annet

Eksempel:

Åpne Notisblokken eller et hvilket som helst tekstredigeringsprogram du ønsker, og skriv følgende kode som initialiserer verdien til inputValue-variabelen til 1 på den tredje linjen. Verdien av inputValue-variabelen kontrolleres deretter ved å bruke en 'if'-setning på kjøretid for å se om den er lik 1, 2 eller 3. I så fall skrives den aktuelle meldingen ut på kommandolinjeskjermen. Hvis den ikke er det, vises den endelige meldingen. I en betinget setning kjent som 'if', blir en variabels inputValue sjekket for å se om den er lik 1, 2 eller 3. Hvis den gjør det, blir en av to kodeblokker deretter utført. Hvis betingelsen er sann, gjør den betingede uttalelsen ingenting.

@ekko av

rem Dette skriptet tester variabelen inputValue mot verdiene 1, 2 og 3.

sett inputValue=1

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

ekko Inngangsverdien er lik 1.

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

ekko Inngangsverdien er lik 2.

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

ekko Inngangsverdien er lik 3.

) annet (

echo Variabelen inputValue er ikke lik 1, 2 eller 3.

)

Produksjon:

Konklusjon

Skriptflyt kan kontrolleres, og prosesser kan automatiseres på Windows-operativsystemet ved å bruke kommandoer, løkker og betingede utsagn som 'if'. Utviklere kan stoppe kjøringen av et skript eller legge til forsinkelser med «pause»-kommandoen ved å bruke «timeout» eller «ping». Selv om det ikke er noen innebygd 'switch'-setning i batch-skripting, kan vi simulere den med 'if' og 'else if'-uttrykk. Testing er avgjørende for å sikre at disse skriptene fungerer etter hensikten i den aktuelle konteksten. Disse skriptene er nyttige for automatisering, systemadministrasjon og filmanipulering.