Ved hjelp av Batch Files, del 4: CALL Statement

December 24  by Eliza

Hvis du ikke hadde gjettet nå, kan batch-filer tjene som en elementær type programmeringsspråk. En ting som moderne programmeringsspråk gi er evnen til å modularisere kode i små biter, slik at hvis du endrer en brikke du ikke risikerer uhell endre noen urelaterte kode. Du kan modularize en stor batch-fil ved å bryte det inn i mindre og bruke CALL-setningen for å påkalle de enkelte modulene etter behov.

La oss ta det gjelder å ha et menysystem som gjør det mulig for brukeren å påberope seg noen av en rekke funksjoner. Hva vi skal gjøre er å sette hver av funksjonene i sin egen batch fil og bruke CALL-setningen i hovedmenyen batch fil til å påkalle den valgte funksjonen, som da ville gå tilbake til menyen for å tillate brukeren å velge en annen funksjon.

Her er hva Menu.bat kan se slik ut:

ECHO OFF
: TOP
CLS
ECHO Velkommen til hovedmenyen! Her er dine valg ...
ECHO.
ECHO A) Utfør Funksjon AB) Utfør Funksjon B
ECHO C) Utføre Funksjon CD) Utfør Funksjon D
ECHO.
ECHO Q) Quit
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 hva FuncA.bat kan se slik ut:

ECHO Dette er Funksjon A
PAUSE

Til tross for at ikke noe interessant som skjer her, er det starten på en anstendig rammeverk for en kommando basert menysystem. Og er det noen elementer som bør nevnes. Arbeide fra topp til bunn, den første nye kommandoen vi kommer over er CLS kommandoen. Denne enkle kommandoen tømmer bare skjermen, slik at vår meny vil alltid komme ut ser bra av seg selv. Den kresne øye vil også legge merke til noen ECHO uttalelser som umiddelbart etterfulgt av en periode. Dette er hvordan du ut en blank linje. Et annet nytt element er den innebygde: EOF etiketten. Dette dispenserer med behovet for å måtte erklære din egen etikett som eksisterer som den siste linjen i filen (som min ": Ferdig" label brukes i andre tips).

Dette tar oss til samtalen uttalelser. Parameteren er spesifisert med CALL er navnet på batch fil som skal påkalles neste. Så, for eksempel, hvis brukeren velger Alternativ A fra menyen, batch-filen umiddelbart ville gå seg til: en etikett som ville føre FuncA.bat å kunne påberopes neste. Min FuncA.bat fil bare Echos en linje og gjør en PAUSE. PAUSE uttalelsen fører en linje for å bli sendt ut som sier "Trykk en tast for å fortsette...". Det suspenderer da gjennomføringen av batch fil til brukeren trykker på en tast. Når en tast blir trykket, batch-filen inntektene, som i dette tilfellet betyr at FuncA.bat opphører og kontroll fortsetter tilbake i hovedmenyen batch fil på linje umiddelbart etter samtalen til FuncA.bat. Så neste ting å skje vil være GOTO TOP, som starter alt på nytt igjen.

Merk at du ikke trenger å sette en annen "ECHO OFF" på toppen av FuncA.bat fordi ECHO tilstand opprettholdes når FuncA.bat kalles.

Dette tipset (13187) gjelder for Windows 7 og 8.