Hemsida » hur » Hur man skriver ett batchskript på Windows

    Hur man skriver ett batchskript på Windows

    Vet du hur du använder kommandotolkningen? Om du gör det kan du skriva en batchfil. I sin enklaste form är en batchfil (eller batch script) en lista över flera kommandon som körs när du dubbelklickar på filen. Batchfiler går hela vägen tillbaka till DOS, men arbetar fortfarande med moderna versioner av Windows.

    PowerShell-skript och Bash-skript kan vara kraftfullare, men batchfiler kan fortfarande vara mycket användbara om du behöver köra grundläggande Windows-kommandon.

    Batchfilens grunder

    En batchfil är helt enkelt en textfil som sparas med .bat-filtillägget. Du kan skriva en med Notepad eller en mer avancerad textredigerare som Notepad ++, men använd inte en ordbehandlare som Microsoft Word.

    Låt oss skapa en enkel batchfil. Öppna först Notepad. Skriv följande rader i det:

    ECHO OFF ECHO Hej World PAUSE

    Spara sedan filen genom att klicka på Arkiv> Spara. Ge det något namn du vill, men ersätt standardfilen .txt med .bat-tillägget.

    Till exempel kanske du vill namnge den hello_world.bat .

    Du har nu en batchfil med .bat-filtillägget. Dubbelklicka på den för att köra den. Den här batchfilen sätter ECHO av (som rensar utmatningen genom att gömma kommandona från att skrivas ut vid prompten, skriver texten "Hello World" till skärmen och väntar sedan på att du trycker på en nyckel innan den slutar.

    Om du inte har lagt till PAUS till filen skulle batchfilen helt enkelt springa sina kommandon och stäng sedan automatiskt. I det här fallet skulle det skriva ut "Hello World" i fönstret och stäng sedan omedelbart Kommandotolken. När du vill snabbt köra kommandon utan att se produktionen, kan du släppa bort det här. Om du kör flera kommandon kan du placera PAUS kommando mellan dem.

    Skriva en mer komplex satsfil

    Det är grundläggande enkelt att skapa en batchfil. Det enda du behöver ändra är vad du skriver in anteckningsblock. För att köra flera kommandon skriver du var och en på sin egen rad och batchfilen körs var och en i ordning.

    Låt oss till exempel säga att vi vill skriva en batchfil som kör flera nätverksdiagnostiska kommandon. Vi kanske vill springa ipconfig / all för att visa nätverksinformation, ping google.com för att se om Googles servrar svarar, och tracert google.com att köra en traceroute till google.com och se om det finns några problem på vägen.

    I den mest grundläggande formen kunde vi helt enkelt placera alla dessa kommandon i en batchfil, en efter en, så här:

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

    När vi kör den här filen så ser vi bara utgången av varje kommando direkt efter varandra. Men det här är inte nödvändigtvis det perfekta sättet att skriva en batchfil.

    Du kan till exempel lägga till kommentoror. Varje rad som börjar med a :: är en kommentarlinje och kommer inte att utföras. Det gör dem till ett användbart sätt att förklara vad som händer i filen för alla du kan ge den till - eller för ditt framtida själv, som kanske glömmer varför du bestämmer ett visst kommando där.

    Du kanske också vill lägga till kommandot "ECHO OFF" i början av filen. Detta läggs vanligen till i början av de flesta batchfiler. När du gör det här kommer kommandonerna inte att skrivas ut till kommandotolken, men resultaten kommer att bli. Till exempel ser du nätverksanslutningsinformationen men inte linjen "ipconfig / all". De flesta människor bryr sig inte om att se kommandona, så det här kan städa upp produktionen.

    Så här är det som kan se ut:

    :: Den här batchfilen kontrollerar problemen med nätverksanslutningen. ECHO OFF :: Visa nätverksanslutningsuppgifter ipconfig / all :: Kontrollera om Google.com är nåbart ping google.com :: Kör en traceroute för att kolla rutten till Google.com-tracert google.com PAUSE

    Det finns andra anvisningar du kan gå med en batchfil som denna. Du kanske till exempel vill ha ditt batch-script att köra ovanstående kommandon och sedan dumpa utmatningen till en textfil som du kan visa senare. För att göra det skulle du använda >> operatör efter varje kommando för att lägga till dess utdata till textfilen. Som vi kommer att läsa produktionen från textfilen kan vi ändå släppa bort PAUS kommando.

    :: Den här batchfilen kontrollerar problemen med nätverksanslutningen :: och sparar utdata till en .txt-fil. ECHO OFF :: Visa nätverksanslutningsuppgifter ipconfig / all >> results.txt :: Kontrollera om Google.com är nåbart ping google.com >> results.txt :: Kör en traceroute för att kolla rutten till Google.com-tracert google. com >> results.txt

    När du har kört ovanstående skript hittade du en fil med namnet results.txt i samma mapp som batchfilen med utgången av kommandona. Kommandotolken stängs automatiskt när batchfilen är klar.

    Exemplet som vi använder ovan är beroende av att faktiskt skriva ut information till kommandotolken så att användaren kan läsa den. Men många batchfiler är utformade för att köras icke-interaktivt. Du kan till exempel ha en batchfil som tar bort flera filer eller kataloger när du dubbelklickar på den. Du behöver bara använda del kommandot att radera filer eller deltree kommandot för att radera kataloger. Kom ihåg att du bara använder samma kommandon som du skulle köra i ett Kommandotolken.

    I grunden är det meningen med de flesta batchfilerna - bara kör några kommandon en efter en. Batchfiler kan dock faktiskt vara betydligt mer komplexa än detta. Du kan till exempel använda "IF" -sätt tillsammans med kommandot "GOTO" för att kontrollera värdet på något och hoppa över till olika rader beroende på resultatet. Det här är mer som att skriva ett faktiskt litet program än ett snabbt och smutsigt manus. Det är en anledning till att .bat-filer ibland kallas "satsprogram". Om du vill göra något mer komplext, hittar du massor av guider för att göra specifika saker med batchprogrammering online. Men nu vet du grunderna om hur man slänger en enkel ihop.