Ved hjælp af batch-filer, del 4: CALL Statement

Hvis du ikke havde gættet nu, kan batch-filer tjene som en rudimentær form for programmeringssprog. En ting, som moderne programmeringssprog giver, er evnen til at modularisere kode i små stykker, så hvis du ændrer ét stykke du ikke risikerer uheld ændre nogle uafhængige kode. Du kan modularize en stor batchfil ved at bryde den i mindre og bruge CALL-sætning til at påberåbe sig de enkelte moduler efter behov.

Lad os tage det drejer sig om at have en menu, som giver brugeren mulighed for at påberåbe sig nogen af ​​en række funktioner. Hvad vi vil gøre er at sætte hver af funktionerne i deres egen batchfil og bruge CALL-sætning i hovedmenuen batchfil til at påberåbe sig den valgte funktion, som så ville vende tilbage til menuen for at gøre det muligt for brugeren at vælge en anden funktion.

Her er, hvad Menu.bat kan se ud:

ECHO OFF
: TOP
CLS
ECHO Velkommen til hovedmenuen! Her er dine valg ...
ECHO.
ECHO A) Udfør funktionen AB) Udfør Funktion B
ECHO C) Udfør Funktion CD) Udfør Funktion D
ECHO.
ECHO Q) Afslut
ECHO.
VALG / C ABCDQ
GOTO% ERRORLEVEL%
: 5
GOTO: EOF
: 4
CALL FuncD.bat
GOTO TOP
: 3
CALL FuncC.bat
GOTO TOP
: 2
CALL FuncB.bat
GOTO TOP
: 1
CALL FuncA.bat
GOTO TOP

Og her er hvad FuncA.bat kan se ud:

ECHO Dette er Funktion A
PAUSE

På trods af at intet interessant sker her, det er starten på en anstændig ramme for en kommando-baserede menu system. Og der er et par elementer, der bør bemærkes. Arbejde fra top til bund, den første nye kommando vi kommer på tværs er CLS-kommandoen. Denne enkle kommando blot rydder skærmen, så vores menu altid vil komme ud at se godt af sig selv. Den kræsne øje vil også bemærke nogle ECHO udsagn, som umiddelbart efterfulgt af en periode. Dette er, hvordan du output en tom linje. En anden ny post er den indbyggede: EOF etiket. Dette giver afkald på behovet for at skulle erklære din egen etiket, der eksisterer som den sidste linje i filen (ligesom min ": Udført" mærkning, der anvendes i andre tips).

Dette bringer os til opkaldet udsagn. Den angivne med CALL parameter er navnet på den batchfil, der skal påberåbes næste. Så for eksempel, hvis brugeren vælger mulighed A fra menuen, batchfilen vil straks gå til: 1 etiket, som vil medføre FuncA.bat kan påberåbes næste. Min FuncA.bat fil simpelthen Echos en linje og gør en PAUSE. PAUSE erklæring forårsager en linje til at være output som siger "Tryk på en tast for at fortsætte...." Det suspenderer så udførelsen af ​​batch-fil, indtil brugeren trykker på en tast. Når der trykkes på en tast, batchfilen udbytte, som i dette tilfælde betyder, at FuncA.bat opsiger og kontrol genoptager tilbage i hovedmenuen batchfil på linjen umiddelbart efter opkaldet til FuncA.bat. Så den næste ting til at ske, vil være GOTO TOP, som starter alt forfra.

Bemærk, at du ikke behøver at sætte en anden "ECHO OFF" i toppen af ​​FuncA.bat fordi ECHO tilstand opretholdes, når FuncA.bat hedder.

Dette tip (13187) gælder for Windows 7 og 8.


© 2019 Zajacperrone.com | Contact us: webmaster# zajacperrone.com