Hur man Skriver ett Batch-Script i Windows

0
8494

Vet du hur du ska använda Kommandotolken? Om du gör det, kan du skriva en batch-fil. I sin enklaste form kan en batch-fil (eller batch-skript) är en lista över flera kommandon som utförs när du dubbelklickar på filen. Batch-filer gå hela vägen tillbaka till DOS, men arbetar fortfarande med moderna versioner av Windows.

PowerShell-skript och Bash-skript kan vara mer kraftfull, men batch-filer kan fortfarande vara mycket användbart om du behöver köra grundläggande Windows-kommandon.

Batch-Fil Grunderna

En batch-fil är en textfil som sparas med .bat-filen förlängning. Du kan skriva med hjälp av Anteckningar eller en mer avancerad text-editor som Notepad++, men inte använda en ordbehandlare som Microsoft Word.

Låt oss skapa en enkel batch-fil. Först, öppna Anteckningar. Skriv följande rader:

ECHO OFF
ECHO Hello World
PAUS

Nästa, spara filen genom att klicka på Arkiv > Spara. Ge det vilket namn du vill, men byt ut standard .txt-fil förlängning med .bat förlängning.

Till exempel kanske du vill namnge det hello_world.bat .

Du har nu en batch-fil med den .bat-filen förlängning. Dubbel-klicka på den för att köra den. Just denna batch-filen innehåller ECHO off (som rensar upp produktionen genom att dölja de kommandon som kan tryckas vid prompten, skriver ut texten “Hello World” på skärmen, och sedan väntar på att du ska trycka på en tangent innan det slutar.

Om du inte lägger till en PAUS för att filen, batch-fil skulle helt enkelt köra sina kommandon och sedan stängs automatiskt. I detta fall, det skulle skriva ut “Hello World” till fönstret och sedan omedelbart stäng fönstret Kommandotolken. När du snabbt vill köra kommandon utan att se produktionen, kan du utelämna detta. Om du kör flera olika kommandon, som du kan placera kommandot PAUS i mellan dem.

Att skriva en Mer Komplex Batch-Fil

Det är i grunden enkelt att skapa en batch-fil. Det enda du behöver ändra är vad du skriver i Anteckningar. Att köra flera olika kommandon, som du skriver var och en på sin egen linje och batch-fil som kommer att köras var och en i sin ordning.

Till exempel, låt oss säga att vi vill skriva en batch-fil som körs flera nätverk diagnostiska kommandon. Vi kanske vill köra ipconfig /all för att se network information, 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, vi kunde helt enkelt placera alla dessa kommandon i en batch-fil, den ena efter den andra, så här:

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

När vi kör den här filen, vi skulle bara se resultatet av varje kommando direkt efter den andra. Men detta är inte nödvändigtvis det bästa sättet att skriva en batch-fil.

Du kanske till exempel vill lägga till en kommentar linjer. Alla rader som börjar med en :: är en kommentar linje och kommer inte att utföras. Det gör dem ett bra sätt att förklara vad som händer i filen för någon som du kan ge det till–eller för din framtida själv, vem kan glömma varför du lägger en viss kommando i det.

Du kan också vilja lägga till “ECHO OFF” – kommandot går till början av filen. Detta är vanligtvis läggs till i början av de flesta batch-filer. När du gör detta, de kommandon som själva kommer inte att skrivas ut till Kommandotolken, men resultatet kommer att bli. Till exempel, du kommer att se information om nätverksanslutningen men inte “ipconfig /all” – raden. De flesta människor bryr sig inte att se kommandona, så detta kan städa upp produktionen.

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

:: Denna batch-fil kontrollerar för problem med nätverksanslutning.
ECHO OFF
:: Visa information om nätverksanslutningen
ipconfig /all
:: Kontrollera om Google.com kan nås
ping google.com
:: Kör en traceroute för att kontrollera rutten till Google.com
tracert google.com
PAUS

Det finns även andra riktningar kan du gå med en batch-fil som denna. Till exempel, du kanske vill ha din batch-skript kör ovanstående kommandon och sedan dumpa produktion till en text-fil som du kan visa senare. Att göra så, skulle du använda >> operatören efter varje kommando för att lägga sin produktion till en text-fil. Som vi kommer att läsa produktionen från text-fil hur som helst, vi kan utelämna PAUSE-kommandot.

:: Denna batch-fil kontrollerar för problem med nätverksanslutning
:: och sparar utdata till en .txt-fil.
ECHO OFF
:: Visa information om nätverksanslutningen
ipconfig /all >> results.txt
:: Kontrollera om Google.com kan nås
ping google.com >> results.txt
:: Kör en traceroute för att kontrollera rutten till Google.com
tracert google.com >> results.txt

När du kör skriptet ovan, skulle du hitta en fil med namnet results.txt i samma mapp som batch-fil med utdata från kommandon. Kommandotolkens fönster stängs automatiskt när batch-fil som är klar att köra.

De exempel vi använder ovan bygger på att faktiskt skriva ut information till Kommandotolken så att användaren kan läsa det. Men många batch-filer är designade till att köra icke-interaktivt. Du kan till exempel ha en batch-fil som tar bort flera filer eller kataloger när du dubbelklickar på den. Du skulle bara behöva använda kommandot del för att ta bort filer eller deltree kommando för att ta bort kataloger. Kom ihåg, du bara använda samma kommandon du vill köra i ett kommandofönster.

Grunden, som de flesta batch-filer–för att bara köra några kommandon efter varandra. Men, batch-filer kan faktiskt vara betydligt mer komplex än så. Du kan till exempel använda “OM” – påståenden tillsammans med “GOTO” – kommandot för att kontrollera värdet av något och sedan hoppa över till olika linjer beroende på resultatet. Detta är mer som att skriva en faktisk litet program än en snabb och smutsig manus. Det är en anledning till varför .bat-filer kallas ibland för “batch-program.” Om du vill göra något mer komplicerad, kommer du hitta massor av guider för att göra specifika saker med batch-programmering på nätet. Men nu känner du till grunderna för hur man kasta en enkel tillsammans.