| Nätverksklassen |
Här kan Du se några exempel på hur BAT-filer skrivs. Den första genererar en meny när datorn startas och beroende på vilket val man gör anropas en annan BAT-fil för att gå vidare. Kommentarer till (nästan) varje rad har jag infogat strax ovanför varje kommando (i kursiv stil) men dessa är inte nödvändiga för filens funktion. Kommentarer infogas i BAT-filer med "REM" framför för att ignoreras av processorn.
Understruket-blått är bara länkar inom dokumentet (för att underlätta sökningen lokalt) och skall alltså inte skrivas in så i BAT-filen!
Namnen på Bat-filerna är fritt valbart bara man kommer ihåg att när man anropar med kommandot CALL, ange rätt namn till respektive fil (eller plats i en och samma fil).
För att få upp menyn automatiskt vid datorstart skriver man in menyfilens namn sist i AUTOEXEC.BAT (utan ändelsen) med kommandot CALL före, alltså i det här fallet: CALL M.
@ECHO OFF
rem M.BAT =namnet på
filen
CLS
ECHO.
ECHO.
ECHO MS-DOS
6.22 STARTMENY
ECHO ******************************************
ECHO D DOS-PROMPT
ECHO F FORMATERA DISKETT
ECHO B SÄKERHETSKOPIERING
(BACKUP)
ECHO ******************************************
ECHO Vid uteblivet val,
automatisk hopp till DOS-PROMPT efter 30 sek.
ECHO (I händelse av
fel tangenttryckning sker ingen automatisk hopp)
ECHO ---------------------------------------------------------------------------------------
ECHO Skriv "M" och tryck
Return vid A-prompten för att återgå till menyn
ECHO **********************************************************************
ECHO.
rem Med växeln T
väljer man alternativet som skall vara förvalt (standard) samt
nedräkningstiden dit.
CHOICE /C:DFB /T:D,30 VÄLJ
ÖNSKAT ALTERNATIV
IF ERRORLEVEL 3 GOTO BACKrem
Alternativ B, backup-programmet anropas
(man börjar med sista alternativet
på menyn!)
IF ERRORLEVEL 2 GOTO FORMrem
Alternativ F, formaterar disketter
IF ERRORLEVEL 1 GOTO ENDrem
Alternativ D, man kommer till A-prompten
IF ERRORLEVEL 0 GOTO END
:FORM
CALL FM rem
Anropar bat-filen för att formatera disketter
GOTO END
:BACK
CALL B
rem Anropar bat-filen för att starta MSBACKUP-programmet
GOTO END
:END
CLS
rem FM.BAT
@ECHO OFF
CLS
ECHO.
ECHO FORMATERINGSMENY
ECHO *********************************************************
ECHO R Vill Du formatera
disketten rent?
ECHO S Vill Du ha med systemfilerna
på disketten?
ECHO B Formatera en diskett
samt RESERVERA utrymme
ECHO för senare kopiering
av systemfiler
ECHO *********************************************************
ECHO Om Du avbryter med
Ctrl+C, tryck N för återgång till huvudmenyn, J för
A-prompt!
CHOICE /C:RSB VÄLJ
ÖNSKAT ALTERNATIV!
IF ERRORLEVEL 3 GOTO FB
IF ERRORLEVEL 2 GOTO FS
IF ERRORLEVEL 1 GOTO FR
IF ERRORLEVEL 0 GOTO AV
:FR
CALL F
GOTO END
:FS
CALL FORMS
GOTO END
:FB
CALL FRES
GOTO END
:AV
CALL M
:END
rem F.BAT
CLS
ECHO Formaterar disketten
UTAN systemfiler!
ECHO VARNING! ALL DATA PÅ
DISKETTEN KOMMER ATT RADERAS!
ECHO Avbryt med Ctrl+C
ECHO.
FORMAT A: /U
rem Om användaren
avbryter med Ctrl-C (errorlevel 3) får man ett felmeddelande (7 rader
längre ner)
IF ERRORLEVEL 3 GOTO FEL
rem Om formatering lyckas
(errorlevel 0) avslutas programmet med den vanliga frågan om man
vill formatera flera disketter?
IF ERRORLEVEL 0 GOTO SLUT
rem Om man svarar NEJ
på frågan om flera disketter (errorlevel 5)
IF ERRORLEVEL 5 GOTO SLUT
:FEL
ECHO DU AVBRÖT FORMATERINGEN!
PAUSE rem
Orsakar en paus för att användaren skall hinna läsa meddelandet;
man får upp texten "Tryck på en tangent för att fortsätta"
:SLUT
rem återhopp till
huvudmenyn
CALL M
rem
FORMS.BAT
rem Kommentarer se filen
F.bat
CLS
ECHO Formaterar disketten
MED systemfilerna på!
ECHO VARNING! ALL DATA PÅ
DISKETTEN KOMMER ATT RADERAS!
ECHO Avbryt med Ctrl+C
ECHO.
FORMAT A: /U /S
IF ERRORLEVEL 3 GOTO FEL
IF ERRORLEVEL 0 GOTO SLUT
IF ERRORLEVEL 5 GOTO SLUT
:FEL
ECHO DU AVBRÖT FORMATERINGEN!
PAUSE
GOTO SLUT
:SLUT
CALL M
rem
FRES.BAT
rem Kommentarer se filen
F.bat
CLS
ECHO Formaterar disketten
UTAN systemfiler men MED RESERVERAT utrymme till dessa!
ECHO VARNING! ALL DATA PÅ
DISKETTEN KOMMER ATT RADERAS!
ECHO Avbryt med Ctrl+C
ECHO.
FORMAT A: /U /B
IF ERRORLEVEL 3 GOTO FEL
IF ERRORLEVEL 0 GOTO SLUT
IF ERRORLEVEL 5 GOTO SLUT
:FEL
ECHO DU AVBRÖT FORMATERINGEN!
PAUSE
:SLUT
CALL M
En av anledningarna till att man reserverar utrymme för senare kopiering av systemfilerna (med kommandot SYS) är att en programmakare inte vet om kunden använder MSDOS eller IBMDOS.
rem B.BAT
rem JAG HAR DOS 6.22
PÅ ENHET E, DÄRAV ALLA SÖKVÄGAR LÄNGRE NER men
dessa kan förstås reduceras om man så önskar!
@ECHO OFF
rem Kollar om MSBACKUP
finns på C och kör i så fall därifrån, fortsätter
annars kolla på D
IF NOT EXIST C:\DOS\MSBACKUP.EXE
GOTO BACK1
C:\DOS\MSBACKUP
GOTO END
:BACK1
rem Kollar om MSBACKUP
finns på D och kör i så fall därifrån, fortsätter
annars kolla på E
IF NOT EXIST D:\DOS\MSBACKUP.EXE
GOTO BACK2
D:\DOS\MSBACKUP
GOTO END
:BACK2
rem Kollar om MSBACKUP
finns på E och kör i så fall därifrån, går
annars till OUT (6 rader längre ned)
IF NOT EXIST E:\DOS\MSBACKUP.EXE
GOTO OUT
E:\DOS\MSBACKUP
rem Finns programmet
varken på C, D eller E (errorlevel 4), får man ett meddelande
(fyra rader längre ned)
IF ERRORLEVEL 4 GOTO OUT
GOTO END
:OUT
ECHO KAN INTE HITTA PROGRAMMET
FÖR BACKUP!
PAUSE
GOTO END
:END
rem återhopp till
huvudmenyn
CALL M
Vill man exempelvis starta Norton Commander som finns på en diskett är man tvungen att lägga sig i rätt katalog för att kunna starta det. Då får man skriva så här mycket: cd dprogram <enter>, cd norton <enter>, nc <enter>. En kort och koncis BAT-fil som följande kan vara bra att ha på disketten. Man skriver då bara N vid A-prompten och trycker Enter.
@echo off
rem n.bat
A:\dprogram\norton\nc.exe
Egentligen är det bara den sista raden man behöver skriva och spara sedan filen med valfritt namn och ändelsen BAT.
Om man vill skriva samma fil direkt på skärmen (utan att öppna en editor) gör man följande vid prompten:
copy con n.bat <enter>
A:\dprogram\norton\nc.exe
<enter>
<Ctrl+Z> <enter>
Man får då meddelandet "1 fil(er) kopierade" och återgång till prompten.