Jeg skrev denne introduktion til hvordan man skriver batch-filer engang i '98, vist nok til min ven Anders, og det var den der gav anledning til at jeg lavede min første hjemmeside - og det er grunden til at den stadig er her på siden, selvom den falder udenfor.
Batch-filer er den slags filer der ender på .BAT. "Batch" betyder - blandt andet - serie og det beskriver det egentlig meget godt. Batch-filer er nemlig en serie af kommandoer, en slags DOS-makroer, simple scripts der automatiserer kedelige opgaver. Batch-filernes storhedstid var i de glade DOS-dage, men eftersom Windows 1, 2, 3, 95, 98 og ME er baseret på MS-DOS, gælder informationerne i denne guide også disse systemer. Denne guide beskriver da også batch-filer i Windows 95/98 og nogle kommandoer virker ikke i DOS eller Windows NT.
Batchfiler kan laves i næsten ethver tekstbehandlingsprogram (som Notesblok eller go'e gamle MS-DOS Editor - skriv edit og tryk enter i DOS-prompten), men tekstformateringer kan ikke bruges. Kun almindelig ASCII tekst. Filerne skal blot gemmes med bat som efternavn ("Whatever.bat"). Lad vær med at give filen det samme navn som en kommando der benyttes i den, da filen så misforstår det og tror den skal starte sig selv. Da BATCH-filer er lavet til DOS er det smartest kun at give dem et navn på otte bogstaver for hvem gider skrive "minbat~1.bat" i en prompt? Forøvrigt behøver man ikke skrive kommandoer o.s.v. med stort, men det fortrækker jeg at gøre.
Til BATCH-filer kan bruges alle DOS-kommandoer. Information om hvordan de virker fås ved at skrive kommandonavn /? i en DOS-prompt.
COPY: |
Kopier fil(er). |
DEL: |
Slet fil(er). |
DELTREE: |
Slet bibliotek og underbiblioteker. |
MOVE: |
Flyt fil(er) |
RENAME: |
Omdøb fil |
MD: |
"Make directory", opret bibliotek. |
FORMAT: |
Formater diskette eller harddisk. |
CD.. : |
Tilbage til forrige bibliotek. |
ECHO: |
Angiver at noget tekst ikke er en kommando og styrer kommandoekkoet. Eksempel: Ved at skrive ECHO Hej vises følgende på skærmen:
C:\>ECHO Hej Ved at skrive ECHO OFF øverst i ens BATCH-fil slås kommandoekkoet fra. Hej
Man kan altså ikke se kommandoen, kun resultatet. |
EXIT: |
Afslutter batch-filen og vender tilbage til prompten. I Windows 9x skal man skrive følgende for at afslutte filen, lukke prompten og vende tilbage til Windows:
CLS Grunden er at Windows 9x ikke vil afslutte batch-filer hvis der står noget på skærmen. |
CALL: |
Starter en batch-fil fra en anden. Hvis denne kommando ikke bruges, startes den anden batch-fil uden at fortsætte den første fil bagefter. Eksempel:
1.bat:
2.bat: Når man starter filen "1.bat" vises følgende på skærmen:
Starter den anden batch-fil.
|
CHOICE: |
Giver brugeren et valg. Som standard er valget j/n. For at ændre det skal man skrive CHOICE efterfulgt af /C: og valgmulighederne. Hvis man skriver /N vises valgene (som standard [J,N]?) ikke og /S skelner mellem store og små bogstaver. /T c:nn vælger c efter nn sekunder. Det første valg returnerer "errorlevel 1", det andet "errorlevel 2" og så videre. Til sidst kan man skrive en besked. Her er et eksempel der viser hvordan man kan lave en simpel menu:
@ECHO OFF Errorlevel skal skrives med den højeste værdi øverst. |
CLS: |
Rydder skærmen |
GOTO: |
Går til en andet sted i batch-filen som markeres med :navn. |
IF: |
Udfører en batch-fil efter nogle betingelser. For eksempel finder følgende ud af om Windows er i C:\Windows eller C:\WIN og kopierer "WIN.COM" til drev A:
@ECHO OFF IF NOT virker omvendt. |
MORE: |
Viser output en skærm af gangen. For eksempel viser "DIR | MORE" indholdet af et bibliotek ligesom "DIR /P". |
PAUSE: |
Pauser batchfilen og skriver "Tryk på en vilkårlig tast for at fortsætte..." på skærmen. Se > NUL . |
PROMPT: |
Ændrer promptens udseende. Du kan eksempelvis skrive din helt egen tekst, ændre den til Windows' versionsnummer (hva' så end man sku' bruge det til), klokken, datoen og så videre. |
SET: |
Sætter et eller andet til et eller andet. For eksempel:
@ECHO OFF Af ovenstående det kan man også se hvad % kan bruges til. |
START: |
Starter et DOS- eller Windowsprogram. I Windows kan du også starte en fil. Det åbner filen i det program der er associeret med filen |
SUBST: |
Associerer et bibliotek med et drevbogstav. |
TYPE: |
Viser indholdet af en tekstfil. For exempel: TYPE readme.txt
|
XCOPY: |
Et mere avanceret kopieringsprogram end COPY. Det kan blandt andet håndtere filer med lange filnavne. |
>>: |
Indsætter et stykke tekst eller et kommando-output i en fil. Eksempler: ECHO Batch-Guide >> Batch.txt DIR >> Log.txt |
>: |
Det samme som >>, men > fjerner samtidig alt andet i filen. |
|
Viser ikker outputtet fra kommandoen. Et eksempel: COPY BATCH.TXT A:\ > NUL
Følgende exempel viser hvordan > NUL kan bruges i forbindelse med PAUSE-kommandoen til at give brugeren mulighed til at tage stilling til om batch-filen skal forsætte, ligesom CHOICE: ECHO Tryk på en tast for at fortsætte eller CTRL+C for at afslutte... PAUSE > NUL |
Brugerinput behandles i batchfiler som et % efterfulgt af et tal mellem 0 og 9. Brugeren skal så skrive batchfilens navn efterfulgt af parametrene. 0 er iøvrigt batchfilen selv, så det kan ikke bruges til input. Følgende eksempel er et installationsprogram hvor brugeren skal skrive harddiskens drevbogstav:
@ECHO OFF
CLS
IF %1"==" GOTO DREV
MD %1\Program
COPY *.* %1\PROGRAM
%1
CD\PROGRAM
PROGRAM
GOTO END
:DREV
CLS
ECHO Du har ikke skrevet din harddisks drevbogstav.
GOTO END
:END
En gang i mellem har jeg brug for at kopiere mange filer mellem min stationære computer og en blærbar. Derfor har jeg skrevet følgende fil for at få den kedelige proces til at går lidt hurtigere. Den kopierer filerne fra disketten over på "Skrivebordet" og derefter sletter dem fra disketten:
@ECHO OFF
:START
ECHO Kopierer fil...
COPY A:\*.* C:\windows\skrive~1\*.*
ECHO.
ECHO Sletter fil...
DELTREE /Y A:\*.*
ECHO.
ECHO Indsaet naeste disk og slaa en haand i
ECHO tastaturet eller tryk CTRL + C for at afslutte.
ECHO.
PAUSE >NUL
GOTO START
Ved at at skrive stien til dine batch-filer i PATH linien i din autoexec.bat kan de nåes fra alle steder i prompten. Hver sti i PATH linien separeres af ; . Et exempel:
PATH C:\WINDOWS;C:\WINDOWS\COMMAND;C:\WINDOWS\COMMAND\BAT;C:\
Hjælpefilen til MS-DOS 6.22 indeholder beskrivelser af de fleste kommandoer der kan bruges i batchfiler, komplet med exempler og det hele. Filerne (Help.com, Help.hlp og Qbasic.exe) ligger på Windows 98-CD'en under \TOOLS\OLDMSDOS og på Windows 95-CD'en under \OTHER\OLDMSDOS. Du kan også hente de nødvendige filer her.
Hvis du har et problem er nyhedsgruppen alt.msdos.batch et godt sted at få råd. Men som med så meget andet, så er det vigtigste at prøve sig frem og kigge på hvordan andre har gjort tingene.