Hjemmeside » hvordan » Hvordan skrive et batchskript på Windows

    Hvordan skrive et batchskript på Windows

    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 Hei 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 på den for å kjøre den. Denne spesielle batchfilen setter ECHO av (som rydder utdataene 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 bare kjøre kommandoer 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 på veien.

    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 kommandoene selv ikke bli skrevet ut til kommandoprompt, men resultatene vil bli. 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:

    :: Denne batchfilen kontrollerer nettverksforbindelsesproblemer. ECHO OFF :: Vis nettverkstilkoblingsdetaljer ipconfig / all :: Sjekk om Google.com er tilgjengelig ping google.com :: Kjør en traceroute for å sjekke ruten til 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 skal lese utgangen fra tekstfilen, kan vi altså slippe ut PAUSE kommando.

    :: Denne batchfilen kontrollerer nettverksforbindelsesproblemer :: og lagrer utdataene til en .txt-fil. ECHO OFF :: Vis nettverkstilkoblingsdetaljer ipconfig / all >> results.txt :: Sjekk om Google.com er tilgjengelig ping google.com >> results.txt :: Kjør en traceroute for å sjekke ruten til 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 å kjøre.

    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 komplekse enn dette. For eksempel kan du bruke "IF" -sagnene 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 man kaster en enkel sammen.