5 IF uttalanden att använda för smartare Windows Batch Scripts

5 IF uttalanden att använda för smartare Windows Batch Scripts / Programmering

Om du gör mycket arbete i Windows-batchfiler, ska IF uttalande erbjuder ett mycket kraftfullt sätt att lägga till flexibilitet för dina skript.

I den här artikeln kommer du att lära dig om de fem huvudtyperna av IF-uttalanden som du kan använda i en Windows-batchfil, hur den korrekta syntaxen ser ut och ett realistiskt exempel för varje.

Om du är redo att starta skript, låt oss börja!

1. Jämför värden

En av de grundläggande sakerna som du vanligtvis behöver göra i en batch script är jämför två värden och följ en annan åtgärd beroende på jämförelsen.

Låt oss till exempel säga att du ville skriva ett batchskript som kontrollerar datorns hårddiskstorlek dagligen. Om det är under 3 GB vill du få en e-postrapport som säger, “Hårddiskutrymme för lågt.”

För att skapa ett skript som jämför det aktuella lediga hårddiskytan till din gräns, skapar du följande batchskript och sparar det som en .bat-fil.

@echo av set DriveLimit = 300000000 för / f "usebackq delims == tokens = 2" %% x in ('wmic logicaldisk där "DeviceID =' C: '" få FreeSpace / format: value ") ställer in FreeSpace = %% x Echo FreeSpace = "% FreeSpace%" Echo Limit = "% DriveLimit%" Om% FreeSpace% GTR% DriveLimit% (Echo Det finns tillräckligt med ledigt utrymme.) Annat (Echo Ej tillräckligt med ledigt utrymme.)

WMIC är Windows Management Instrumentation-komponenten i Windows som levereras med ett sortiment av kommandon som du kan använda för att dra PC-information. Så här “wmic” Kommando i det här skriptet kallar “logicaldisk” utrymme och placerar det i FreeSpace-variabeln. Nu kan du bara ersätta raden “Echo Inte tillräckligt med ledigt utrymme” med ett blat email-kommando för att skicka en varning.

Slutligen sätta upp det här skriptet som ett rutinerat batchjobb som körs dagligen.

Om du aldrig har använt blat tidigare har vi en artikel som visar hur du konfigurerar blat. Obefintlig med att skapa schemalagda jobb? Vi har tagit dig med en artikel om hur du konfigurerar Windows-planerade uppgifter. 4 Boring-uppgifter du kan automatisera med Windows-uppgiftsschemaläggaren. 4 Boring-uppgifter du kan automatisera med Windows-uppgiftsschemaläggaren. Din tid är för värdefull för att bli bortkastad med upprepade uppgifter . Låt oss visa dig hur du automatiserar och schemalägger uppgifter. Vi har också några bra exempel. Läs mer .

2. Stringjämförelser

En annan värdefull IF-jämförelse du kan göra i ett partijobb är jämföra strängar.

I följande exempel ser du hur du kontrollerar din Windows-version med ett batchjobb. Då kan du jämföra detta med din förväntade Windows-version.

Vissa användningar av det här skriptet skulle vara för IT-revisioner när du snabbt behöver köra ett skript och se till att det aktuella operativsystemet är det senaste eller om det behöver uppgraderas.

Så här ser det här skriptet ut.

@echo av för / f "tokens = 4-5 delims =." %% jag in ('ver') ställer in VERSION = %% i. %% j om "% version%" == "6.0" echo Windows Vista . om "% version%" == "6.1" echo Windows 7 om "% version%" == "6.2" echo Windows 8 om "% version%" == "6.3" echo Windows 8.1 om "% version%" == "10.0" echo Windows 10. 

Här ser utmatningen av det här skriptet ut.

Möjligheten att jämföra strängar i sats öppnar en hel lista över möjligheter. Om du undersöker all information som du kan få från ett WMIC-kommando kan du se hur många statistik som finns över din dator som du kan övervaka. Du kan använda schemalagda batchjobb för att varna för dessa.

3. Kontrollera om en fil existerar

En annan användbar situation där ett IF-uttalande i en batchfil är att kontrollera om det finns en datafil.

Många gånger är batchjobbet bara ett övervakningsverktyg som kan schemaläggas för att söka efter nya inkommande datafiler i en specifik katalog.

Då kan batchjobet antingen kopiera den filen till en annan plats där den kan bearbetas eller avaktivera några Windows-skript som behandlar filen i en Excel-utgång.

(Vi har tidigare skrivit om hur man använder Windows-skript för att bearbeta data till en Excel-fil. 5 Användbara VB-Windows-skript för att automatisera din dator Använd 5 användbara VB-Windows-skript för att automatisera din dator. Använd från webbplatsövervakning till systemrapporter, lära dig hur att automatisera alla saker med dessa fantastiska VB-skript du kan koda i Windows just nu. Läs mer, lite bra bakgrundsvisning.)

Att använda en batchfil för att kontrollera om en fil finns i en katalog är snabb och enkel. Här är vad det här skriptet ser ut.

@echo av om existerar c: \ temp \ datafile.txt (% WINDIR% \ SysWOW64 \ cmd.exe cscript LoadToExcel.vbs) annars (remfil existerar inte)

IF EXISTS jämförelsen är användbar för många saker.

Om du till exempel har ett system eller en applikation som skapar nya felloggar i en viss mapp när det finns ett problem kan du köra ett batchjobb så ofta för att övervaka om nya felloggar skapas så att du kan skicka en varning.

4. Kontrollera om en kommando misslyckades

En aspekt av batchfilskription som för få IT-personer eller programmerare använder är letar efter fel.

Det finns många batchjobb som flyter runt där ute som utför kritiska IT-uppgifter som säkerhetskopiering av viktiga filer eller körning av filkopiering. När dessa batchjobb misslyckas misslyckas system och folk märker.

Det är mycket smartare att få en varning när ditt satsjobb har misslyckats med ett kommando innan folk börjar märka. På så sätt kan du lösa problemet proaktivt.

Du kan göra detta genom att använda% errorlevel% -variabeln som de flesta program och kommandon returnerar när de körs.

Allt du behöver göra är att följa ditt kommando med kommandot IF% ERRORLEVEL%. Om programmet eller kommandot returnerade en noll är allt bra. Om inte, måste du skicka ett mail till dig själv.

@echo av xcopy C: \ somefolder E: \ backupfolder IF% ERRORLEVEL% NEQ 0 

Du behöver inte ta e-postrutten. Du kan alltid skriva en fellogg som du kan kontrollera varje morgon, eller starta en andra applikation eller kommando som försöker göra kopian med ett annat kommando. Oavsett vilken åtgärd du vill ta, kan IF% ERRORLEVEL% göra det.

Om du hellre vill använda ett IF-uttalande för att söka efter specifika felkoder, erbjuder Windows en ganska omfattande lista över felkoder.

5. Kontrollera för saknade parametrar

Det sista användbara IF-steget är inte ett specifikt kommando, utan istället att kontrollera att manuset mottog lämpliga ingångsparametrar.

Låt oss till exempel säga att du har skrivit ett skript som utför ett xcopy-kommando från en ingående mapp till en gemensam nätverksmapp som används av ett lag. Användaren behöver bara följa ditt skriptnamn med parametrarna som definierar sin personliga filväg.

Självklart kan du inte exekvera ditt skript korrekt utan den angivna sökvägen, så du kan ange ett IF-uttalande i början av ditt script för att försäkra dig om att båda parametrarna har angivits.

Så här ser det ut.

@echo off IF [% 1] == [] (GOTO sub_message) ELSE (xcopy% 1 E: \ backupfolder) GOTO eof: sub_message echo Du har glömt att ange din väg. : eof 

Om du aldrig har använt parametrar med batchskript tidigare, representerar den procentuella symbolen följd av ett tal parametervariabeln. % 1 är den första parametern,% 2 är den andra och så vidare.

Batchjobb kan vara kraftfull

Många börjar använda batchjobb för enkla uppgifter som måste utföras i följd. Med IF-uttalanden är det möjligt att lägga till mycket mer intelligens till dina skript.

Självklart, om du verkligen vill städa upp det, kan du överväga att ta en titt på VBA med vår guide om hur du skapar din första VBA-applikation, eller kanske lära dig Python programmering.

Du kan ofta använda mer avancerade programmeringsspråk som dessa eller lära dig att använda PowerShell 5 Anledningar du borde använda PowerShell Istället för batchskriptning 5 Anledningar att du ska använda PowerShell I stället för batchskriptning PowerShell är vad du skulle få om du korsade kommandotolkningen med Batch Scripting, kastade in några extra funktioner, och sparkade allt upp flera skåror. Här är flera skäl att du ska försöka. Läs mer, för att uppnå många av samma uppgifter som du för närvarande använder batchjobb för.

Utforska mer om: Windows.