Skip to main content

Hvordan skrive et batchskript på Windows

Hvordan skrive et batchskript på Windows

Geoffrey Carr

Vet du hvordan du bruker kommandoprompt? Hvis du gjør det, kan du skrive en batchfil. I sin enkleste form er en batchfil (eller batch script) en liste over flere kommandoer som utføres når du dobbeltklikker filen. Batchfiler går helt tilbake til DOS, men arbeider fortsatt med moderne versjoner av Windows.

PowerShell-skript og Bash-skript kan være kraftigere, men batchfiler kan fortsatt være mye nyttige hvis du trenger å kjøre grunnleggende Windows-kommandoer.

Grunnleggende om batchfil

En batchfil er bare en tekstfil lagret med .bat filtypen. Du kan skrive en ved hjelp av Notisblokk eller et mer avansert tekstredigeringsprogram som Notepad ++, men ikke bruk tekstbehandler som Microsoft Word.

La oss lage en enkel batchfil. Først, åpne Notisblokk. Skriv inn følgende linjer i det:

ECHO OFF ECHO Hello World PAUSE

Deretter lagrer du filen ved å klikke på Arkiv> Lagre. Gi det noe navn du liker, men erstatt standard .txt filutvidelse med .bat-utvidelsen.

For eksempel vil du kanskje nevne den hello_world.bat .

Du har nå en batchfil med .bat filtypen. Dobbeltklikk det for å kjøre det. Denne spesielle batchfilen setter ECHO av (som rydder opp produksjonen ved å skjule kommandoer fra å bli skrevet ut ved spørringen, skriver ut teksten "Hello World" til skjermen, og venter deretter på at du trykker på en tast før den slutter.

Hvis du ikke legger til PAUSE til filen, ville batchfilen ganske enkelt kjøre kommandoene og deretter lukke automatisk. I dette tilfellet ville det skrive ut "Hello World" til vinduet, og deretter lukke vinduet Kommandoprompt umiddelbart. Når du vil raskt kjøre kommandoer uten å se utdataene, kan du utelate dette. Hvis du kjører flere kommandoer, kan du plassere PAUSE kommando i mellom dem.

Skrive en mer kompleks batchfil

Det er grunnleggende enkelt å lage en batchfil. Det eneste du trenger å endre er hva du skriver inn i Notisblokk. For å kjøre flere kommandoer skriver du hver på sin egen linje og batchfilen kjører hver i rekkefølge.

For eksempel, la oss si at vi vil skrive en batchfil som kjører flere nettverksdiagnostiske kommandoer. Vi vil kanskje løpe ipconfig /all for å vise nettverksinformasjon, ping google.com for å se om Googles tjenere svarer, og tracert google.com å kjøre en traceroute til google.com og se om det er noen problemer underveis.

I den mest grunnleggende form kan vi ganske enkelt plassere alle disse kommandoene i en batchfil, den ene etter den andre, slik:

ipconfig /all ping google.com tracert google.com PAUSE

Når vi kjører denne filen, ser vi bare utgangen av hver kommando rett etter den andre. Men dette er ikke nødvendigvis den ideelle måten å skrive en batchfil på.

For eksempel kan du legge til kommentarlinjer. En hvilken som helst linje som begynner med a :: er en kommentar linje og vil ikke bli utført. Det gjør dem til en nyttig måte å forklare hva som skjer i filen for alle du kan gi den til - eller for ditt fremtidige selv, som kanskje glemmer hvorfor du legger en bestemt kommando der inne.

Du vil kanskje også legge til kommandoen "ECHO OFF" til begynnelsen av filen. Dette legges vanligvis til i starten av de fleste batchfiler. Når du gjør dette, vil ikke kommandoene skrives ut til kommandoprompt, men resultatene blir. For eksempel ser du nettverksforbindelsesdetaljer, men ikke linjen "ipconfig / all". De fleste bryr seg ikke om å se kommandoene, så dette kan rydde opp produksjonen.

Så her er det som kan se ut som:

:: This batch file checks for network connection problems. ECHO OFF :: View network connection details ipconfig /all :: Check if Google.com is reachable ping google.com :: Run a traceroute to check the route to Google.com tracert google.com PAUSE

Det er andre retninger du kan gå med en batchfil som dette. For eksempel vil du kanskje ha batch-skriptet kjøre de ovennevnte kommandoene, og deretter dumpe utgangen til en tekstfil du kan vise senere. For å gjøre det, vil du bruke >> operatør etter hver kommando for å legge til sin utgang til tekstfilen. Som vi kommer til å lese utgangen fra tekstfilen, kan vi altså slippe ut PAUSE kommando.

:: This batch file checks for network connection problems :: and saves the output to a .txt file. ECHO OFF :: View network connection details ipconfig /all >> results.txt :: Check if Google.com is reachable ping google.com >> results.txt :: Run a traceroute to check the route to Google.com tracert google.com >> results.txt

Etter at du har kjørt det ovennevnte skriptet, vil du finne en fil som heter results.txt i samme mappe som batchfilen med utdataene fra kommandoene. Kommandoprompt-vinduet lukkes automatisk når batchfilen er ferdig.

Eksemplet vi bruker ovenfor er avhengig av å skrive ut informasjon til kommandoprompt, slik at brukeren kan lese den. Imidlertid er mange batchfiler designet for å bli kjørt ikke-interaktivt. For eksempel kan du ha en batchfil som sletter flere filer eller kataloger når du dobbeltklikker på den. Du trenger bare å bruke del kommandoen for å slette filer eller deltree kommandoen for å slette kataloger. Husk at du bare bruker de samme kommandoene du vil kjøre i et kommandoprompt-vindu.

I utgangspunktet er det poenget med de fleste batchfiler, bare kjører noen kommandoer etter hverandre. Batchfiler kan imidlertid faktisk være betydelig mer komplisert enn dette. For eksempel kan du bruke "IF" setninger sammen med kommandoen "GOTO" for å sjekke verdien av noe og deretter hoppe til forskjellige linjer avhengig av resultatet. Dette er mer som å skrive et faktisk lite program enn et raskt og skittent skript. Det er en grunn til at .bat-filer noen ganger kalles "batchprogrammer." Hvis du vil gjøre noe mer komplekst, finner du mange guider for å gjøre bestemte ting med batchprogrammering på nettet. Men nå vet du det grunnleggende om hvordan du kaster en enkel sammen.

Link
Plus
Send
Send
Pin