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

Det finns flera typer av IF-uttalanden som du kan använda i en Windows-batchfil för att spara tid och ansträngning. Kolla på dessa exempel för att få reda på mer.

Det finns flera typer av IF-uttalanden som du kan använda i en Windows-batchfil för att spara tid och ansträngning.  Kolla på dessa exempel för att få reda på mer.
Annons

Om du gör mycket arbete i Windows-satsfiler, erbjuder IF-satsen 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 ett batch-skript är att jämföra två värden och följa 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 off set DriveLimit=300000000 for /f "usebackq delims== tokens=2" %%x in (`wmic logicaldisk where "DeviceID='C:'" get FreeSpace /format:value`) do set FreeSpace=%%x Echo FreeSpace="%FreeSpace%" Echo Limit="%DriveLimit%" If %FreeSpace% GTR %DriveLimit% ( Echo There is enough free space. ) else ( Echo Not enough free space. ) 

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 kallas kommandot "wmic" i det här skriptet "logicaldisk" och placerar det i FreeSpace-variabeln. Nu kan du bara ersätta raden "Echo Inte tillräckligt ledigt utrymme" med en kommandot blat email 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 som du kan göra i ett partijobb är att 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-granskningar 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 off for /f "tokens=4-5 delims=. " %%i in ('ver') do set VERSION=%%i.%%j if "%version%" == "6.0" echo Windows Vista. if "%version%" == "6.1" echo Windows 7 if "%version%" == "6.2" echo Windows 8 if "%version%" == "6.3" echo Windows 8.1 if "%version%" == "10.0" echo Windows 10. 

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

Batchfil, Windows, Programmering

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 en datafil finns .

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-utskrift.

(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 som 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 off if exist c:\temp\datafile.txt ( %WINDIR%\SysWOW64\cmd.exe cscript LoadToExcel.vbs ) else ( rem file doesn't exist ) 

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 är 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, 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 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 off 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 skriptet har fått de ingående parametrarna .

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 ordentligt utan den angivna sökvägen, så du kan lägga ett IF-uttalande i början av ditt script för att se till 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 You forgot to specify your path. :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.

In this article