Sådan skriver du et batch-script på Windows

Ved du, hvordan du bruger kommandoprompten? Hvis du gør det, kan du skrive en batchfil. I sin enkleste form er en batchfil (eller batch-script) en liste over flere kommandoer, der udføres, når du dobbeltklikker på filen. Batchfiler går helt tilbage til DOS, men fungerer stadig på moderne versioner af Windows.

PowerShell-scripts og Bash-scripts kan være mere kraftfulde, men batchfiler kan stadig være meget nyttige, hvis du har brug for at køre grundlæggende Windows-kommandoer.

Grundlæggende om batchfil

En batchfil er simpelthen en tekstfil gemt med .bat-filtypen. Du kan skrive en ved hjælp af Notepad eller en mere avanceret teksteditor som Notepad ++, men ikke bruge en tekstbehandler som Microsoft Word.

Lad os oprette en simpel batchfil. Åbn først Notesblok. Skriv følgende linjer i det:

ECHO OFF ECHO Hello World PAUSE

Gem derefter filen ved at klikke på Filer> Gem. Giv det ethvert navn, du kan lide, men erstat standardtxt-filtypenavnet med .bat-udvidelsen.

For eksempel vil du måske navngive det hello_world.bat.

Du har nu en batchfil med filtypen .bat. Dobbeltklik på den for at køre den. Denne særlige batchfil sætter ECHO fra (som rydder op i output ved at skjule kommandoerne fra at blive udskrevet ved prompten, udskriver teksten "Hello World" på skærmen og derefter venter på, at du trykker på en tast, før den slutter.

Hvis du ikke tilføjede PAUSEtil filen, kørte batchfilen simpelthen sine kommandoer og lukkede derefter automatisk. I dette tilfælde vil det udskrive "Hello World" til vinduet og derefter straks lukke kommandopromptvinduet. 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 PAUSEkommandoen imellem dem.

Skrivning af en mere kompleks batchfil

Det er grundlæggende simpelt at oprette en batchfil. Det eneste, du skal ændre, er hvad du skriver i Notesblok. For at køre flere kommandoer skal du skrive hver på sin egen linje, og batchfilen kører hver i rækkefølge.

Lad os for eksempel sige, at vi vil skrive en batchfil, der kører flere netværksdiagnostiske kommandoer. Vi vil muligvis køre for ipconfig /allat se netværksoplysninger, for ping google.comat se om Googles servere reagerer og tracert google.comkøre en traceroute til google.com og se om der er nogen problemer på vej.

I den mest basale form kunne vi simpelthen 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 for hver kommando lige efter den anden. Men dette er ikke nødvendigvis den ideelle måde at skrive en batchfil på.

For eksempel vil du muligvis tilføje kommentarlinjer. Enhver linje, der begynder med a, ::er en kommentarlinje og udføres ikke. Det gør dem til en nyttig måde at forklare, hvad der sker i filen for alle, du måske giver den til - eller for dit fremtidige selv, som måske glemmer, hvorfor du lægger en bestemt kommando derinde.

Det kan også være en god idé at tilføje kommandoen “ECHO OFF” til begyndelsen af ​​filen. Dette føjes typisk til starten af ​​de fleste batchfiler. Når du gør dette, udskrives selve kommandoerne ikke til kommandoprompten, men resultaterne bliver. For eksempel kan du se detaljerne om netværksforbindelsen, men ikke linjen "ipconfig / all". De fleste mennesker er ligeglade med at se kommandoerne, så dette kan rydde op i output.

Så her er, hvordan det kan se ud:

:: Denne batchfil kontrollerer for netværksforbindelsesproblemer. ECHO OFF :: Se netværksforbindelsesoplysninger ipconfig / all :: Kontroller, om Google.com kan nås 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 vil du muligvis have dit batch-script til at køre ovenstående kommandoer og derefter dumpe output til en tekstfil, du kan se senere. For at gøre det skal du bruge >>operatøren efter hver kommando til at føje dens output til tekstfilen. Da vi alligevel vil læse output fra tekstfilen, kan vi udelade PAUSEkommandoen.

:: Denne batchfil kontrollerer for netværksforbindelsesproblemer :: og gemmer output i en .txt-fil. ECHO OFF :: Se netværksforbindelsesoplysninger ipconfig / alle >> results.txt :: Kontroller, om Google.com kan nås ping google.com >> results.txt :: Kør en traceroute for at kontrollere ruten til Google.com tracert google. com >> results.txt

Når du har kørt ovenstående script, finder du en fil med navnet results.txt i samme mappe som batchfilen med output fra kommandoerne. Kommandopromptvinduet lukkes automatisk, når batchfilen er færdig med at køre.

Eksemplet, vi bruger ovenfor, er afhængig af faktisk udskrivning af oplysninger til kommandoprompten, så brugeren kan læse den. Imidlertid er mange batchfiler designet til at køre ikke-interaktivt. For eksempel kan du have en batchfil, der sletter flere filer eller mapper, når du dobbeltklikker på den. Du skal bare bruge delkommandoen til at slette filer eller deltreekommandoen til at slette mapper. Husk, du bruger bare de samme kommandoer, som du kørte i et kommandopromptvindue.

Grundlæggende er det meningen med de fleste batchfiler - bare at køre et par kommandoer efter hinanden. Dog kan batchfiler faktisk være betydeligt mere komplekse end dette. For eksempel kan du bruge “IF” -sætninger sammen med “GOTO” -kommandoen til 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 beskidt script. Det er en af ​​grundene til, at .bat-filer undertiden kaldes "batchprogrammer". Hvis du vil gøre noget mere komplekst, finder du masser af guider til at gøre specifikke ting med batchprogrammering online. Men nu kender du det grundlæggende i, hvordan man smider en simpel sammen.