Sådan skriver du et batch script på Windows
Ved du, hvordan du bruger kommandoprompt? Hvis du gør det, kan du skrive en batchfil. I sin enkleste form er en batch-fil (eller batch script) en liste over flere kommandoer, der udføres, når du dobbeltklikker på filen. Batch-filer går helt tilbage til DOS, men arbejder stadig på moderne versioner af Windows.
PowerShell-scripts og Bash-scripts kan være mere kraftfulde, men batch-filer kan stadig være meget nyttige, hvis du skal køre grundlæggende Windows-kommandoer.
Batchfil basics
En batchfil er simpelthen en tekstfil gemt med .bat filtypenavnet. Du kan skrive en ved hjælp af Notesblok eller en mere avanceret teksteditor som Notesblok ++, men brug ikke en tekstbehandler som Microsoft Word.
Lad os lave en enkel batchfil. Først skal du åbne Notesblok. Indtast følgende linjer i det:
ECHO FRA ECHO Hej World PAUSE
Gem derefter filen ved at klikke på Filer> Gem. Giv det noget navn, du kan lide, men erstat standard .txt filudvidelsen med .bat-udvidelsen.
For eksempel kan du nævne det hello_world.bat
.
Du har nu en batch-fil med .bat filtypen. Dobbeltklik på den for at køre den. Denne særlige batchfil indstiller ECHO (som rydder udgangen ved at skjule kommandoerne fra at blive udskrevet ved prompten, udskriver teksten "Hello World" til skærmen og venter derefter på, at du trykker på en tast, inden den slutter.
Hvis du ikke tilføjede PAUSE
til filen vil batchfilen simpelthen køre sine kommandoer og derefter lukke automatisk. I dette tilfælde vil det udskrive "Hello World" til vinduet og derefter lukke vinduet Kommandoprompt straks. Når du hurtigt vil køre kommandoer uden at se output, kan du udelade dette. Hvis du kører flere kommandoer, kan du placere PAUSE
kommando i mellem dem.
Skrivning af en mere kompleks batchfil
Det er grundlæggende nemt at oprette en batchfil. Det eneste du skal ændre er, hvad du skriver ind i Notesblok. Hvis du vil køre flere kommandoer, skriver du hver enkelt på sin egen linje, og batchfilen kører hver i rækkefølge.
Lad os f.eks. Sige, at vi vil skrive en batchfil, der kører flere netværksdiagnostiske kommandoer. Vi ønsker måske at køre ipconfig / all
for at få vist netværksoplysninger, ping google.com
for at se, om Googles servere reagerer, og tracert google.com
at køre en traceroute til google.com og se om der er nogen problemer på vej.
I den mest grundlæggende form kunne vi blot placere alle disse kommandoer i en batchfil, den ene efter den anden, sådan:
ipconfig / all ping google.com tracert google.com PAUSE
Når vi kører denne fil, vil vi bare se output fra hver kommando lige efter hinanden. Men det er ikke nødvendigvis den ideelle måde at skrive en batchfil på.
For eksempel kan du tilføje kommandolinjer. En hvilken som helst linje der begynder med a ::
er en kommentar linje og vil ikke blive udført. Det gør dem til en nyttig måde at forklare, hvad der sker i filen for alle, du kan give det til - eller for dit fremtidige selv, som måske glemmer, hvorfor du lægger en vis kommando derinde.
Du vil måske også tilføje kommandoen "ECHO OFF" til begyndelsen af filen. Dette tilføjes typisk til starten af de fleste batch-filer. Når du gør dette, vil kommandoerne ikke blive udskrevet til kommandopromptet, men resultaterne bliver. Du kan f.eks. Se netværksforbindelsesoplysningerne, men ikke linjen "ipconfig / all". De fleste mennesker er ligeglade med at se kommandoerne, så det kan rydde udgangen.
Så her er hvad der kan se ud:
:: Denne batchfil kontrollerer netværksforbindelsesproblemer. ECHO OFF :: Se netværksforbindelsesoplysninger ipconfig / alle :: Kontrollér, om Google.com er tilgængelig ping google.com :: Kør en traceroute for at kontrollere ruten til Google.com-tracert google.com PAUSE
Der er andre retninger, du kan gå med en batchfil som denne. For eksempel kan du have dit batch script køre ovenstående kommandoer og derefter dumpe output til en tekstfil, du kan se senere. For at gøre det, vil du bruge >>
operatør efter hver kommando for at tilføje sin udgang til tekstfilen. Da vi alligevel vil læse produktionen fra tekstfilen, kan vi udelade PAUSE
kommando.
:: Denne batchfil kontrollerer netværksforbindelsesproblemer :: og gemmer output til en .txt-fil. ECHO OFF :: Se netværksforbindelsesoplysninger ipconfig / alle >> results.txt :: Kontrollér, om Google.com er tilgængelig ping google.com >> results.txt :: Kør en traceroute for at kontrollere ruten til Google.com-spor google. com >> results.txt
Når du har kørt det ovenstående script, vil du finde en fil med navnet results.txt i samme mappe som batchfilen med output fra kommandoerne. Vinduet Kommandoprompt lukkes automatisk, når batchfilen er færdig med at køre.
Eksemplet, som vi bruger ovenfor, er afhængigt af, at der faktisk udskrives information til kommandoprompt, så brugeren kan læse den. Imidlertid er mange batchfiler designet til at blive kørt ikke-interaktivt. Du kan f.eks. Have en batchfil, der sletter flere filer eller mapper, når du dobbeltklikker på den. Du skal bare bruge del
kommandoen for at slette filer eller deltree
kommandoen for at slette mapper. Husk, du bruger bare de samme kommandoer, du vil køre i et kommandopromptvindue.
Grundlæggende er det punktet for de fleste batch-filer - bare kører et par kommandoer efter hinanden. Batchfiler kan imidlertid faktisk være betydeligt mere komplekse end dette. Du kan f.eks. Bruge "IF" -opgørelser sammen med kommandoen "GOTO" for at kontrollere værdien af noget og derefter springe til forskellige linjer afhængigt af resultatet. Dette er mere som at skrive et faktisk lille program end et hurtigt og snavset script. Det er en grund til, at .bat-filer nogle gange kaldes "batch-programmer." Hvis du vil gøre noget mere komplekst, finder du masser af hjælpelinjer til at gøre specifikke ting med batchprogrammering online. Men nu ved du det grundlæggende om, hvordan man smider en simpel sammen.