14Sep

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.

Batchfil Basics

En batchfil är helt enkelt en textfil som sparas med. bat-filtillägget. Du kan skriva en med anteckningsblock 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 in i det:

ECHO OFF ECHO Hej Värld PAUSE

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

Du kan till exempel namnge det 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.)

OmDu har inte lagt till PAUSE i filen, batchfilen skulle helt enkelt köra kommandona och stängs sedan automatiskt. I det här fallet kommer det att skrivas ut "Hello World" till fönstret och stäng sedan omedelbart Kommandotolken. När du villOm du kör flera kommandon kan du placera PAUSE-kommandot mellan dem.

Skriva en mer komplex satsfil

Det är grundläggande enkelt att skapa en batchfil. Det du behöver ändra är vad du skriver in i anteckningsblock. Om du vill 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 somkörs several nätverksdiagnostiska kommandon. Vi kanske vill köra ipconfig / alla för att visa nätverksinformation, ping google.com för att se om Googles servrar svarar och spåra google.com för 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 skulle vibara se produktionen av varje kommando rätt efter varandra. Men det här är inte nödvändigtvis det perfekta sättet att skriva en batchfil.

Du kanske till exempel vill lägga till kommentarrader. En rad som börjar med en: : ä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 bud 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 detta kommer kommandona 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 problem 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 riktningar 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 & gt; & gt;operatör efter varje kommando för att lägga till dess utdata till textfilen. Eftersom vi kommer att läsa produktionen från textfilen, kan vi släppa in PAUSE-kommandot.

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

När du har kört ovanstående skript, skulle du hitta 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 kommandot del för att radera filer eller delkommandot för att radera kataloger. Kom ihåg att du bara använder samma kommandon som du skulle köra i ett Kommandotolken.

Grundläggande, det är meningen med de flesta batchfiler, 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" -förklaringar 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.