5 IF -uttalanden som ska användas för smartare Windows Batch Scripts

5 IF -uttalanden som ska användas för smartare Windows Batch Scripts

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





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





Om du är redo att börja skripta, låt oss komma igång!





1. Jämför värden

En av de grundläggande sakerna du vanligtvis behöver göra i ett batchskript ä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 batch -skript 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.'



Om du vill skapa ett skript som jämför det nuvarande lediga hårddiskutrymmet med din gräns kan du skapa följande batchskript och spara 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 kommer med ett sortiment av kommandon som du kan använda för att hämta datorinformation. Så här kallar kommandot 'wmic' i detta skript 'logicaldisk' -utrymmet och placerar det i FreeSpace -variabeln. Nu kan du bara ersätta raden 'Echo Inte tillräckligt med ledigt utrymme' med ett blat e -postkommando för att skicka dig en varning.





Slutligen ställer du in detta skript som ett schemalagt batchjobb för Windows som körs dagligen.

Om du aldrig har använt blat tidigare har vi en artikel som visar dig hur du ställer in blat. Okänd med att ställa in schemalagda jobb? Vi har täckt dig med en artikel om hur du konfigurerar schemalagda Windows -uppgifter.





2. Strängjämförelser

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

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

Vissa användningsområden för detta skript skulle vara för IT -granskningar när du snabbt måste köra ett skript och se till att det nuvarande 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.

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

Möjligheten att jämföra strängar i batch öppnar en hel lista med möjligheter. Om du utforskar alla information du kan få från ett WMIC -kommando du kommer att se hur mycket statistik om din dator du kan övervaka. Du kan använda schemalagda batchjobb för att varna om dessa.

3. Kontrollera om det finns en fil

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

Många gånger är batchjobbet bara ett övervakningsverktyg som kan planeras att leta efter nya inkommande datafiler i en specifik katalog.

Därefter kan batchjobbet antingen kopiera den filen till en annan plats där den kan bearbetas eller starta några Windows -skript som bearbetar filen till en Excel -utdata.

(Vi har tidigare skrivit om hur använda Windows -skript för att bearbeta data till en Excel -fil ; lite bra bakgrundsläsning.)

Att använda en batchfil för att kontrollera om en fil finns i en katalog är snabbt och enkelt. Så här ser det manuset ut.

@echo off
if exist c: empdatafile.txt (
%WINDIR%SysWOW64cmd.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 program som kör nya felloggar i en specifik 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 ett kommando misslyckades

En aspekt av batchfilskript som för få IT -personer eller programmerare använder är söker efter fel .

Det finns många batchjobb som flyter runt där och som utför viktiga IT -uppgifter som att säkerhetskopiera viktiga filer eller köra filkopiering. När dessa batchjobb misslyckas misslyckas systemen och människor märker det.

Det är mycket smartare att få en varning när ditt batchjobb har misslyckats med ett kommando innan människor börjar märka. På så sätt kan du åtgärda problemet proaktivt.

Du kan göra detta genom att använda variabeln % errorlevel % som de flesta program och kommandon returnerar efter att de har körts.

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 e -postmeddelande till dig själv.

@echo off
xcopy C:
omefolder E:ackupfolder
IF %ERRORLEVEL% NEQ 0

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

Om du hellre vill använda en IF -sats för att leta efter specifika felkoder, erbjuder Windows en snygg omfattande lista över felkoder .

5. Kontrollera om det saknas parametrar

Den sista användbara IF -satsen är inte ett specifikt kommando, utan istället för att kontrollera att skriptet mottagit 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 inmatningsmapp till en gemensam nätverksmapp som används av ett team. Användaren behöver bara följa ditt skriptnamn med parametrarna som definierar deras personliga sökväg.

Uppenbarligen kan du inte köra ditt skript ordentligt utan den angivna sökvägen, så du kan lägga ett IF -uttalande i början av skriptet för att se till att båda parametrarna har angetts.

Så här ser det ut.

@echo off
IF [%1]==[] (
GOTO sub_message
) ELSE (
xcopy %1 E:ackupfolder
)
GOTO eof
:sub_message
echo You forgot to specify your path.
:eof

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

Batchjobb kan vara kraftfulla

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.

Naturligtvis, om du verkligen vill öka det, kan du överväga att titta på VBA med vår guide på skapa din första VBA -applikation , eller kanske till och med lära sig Python -programmering.

Du kan ofta använda mer avancerade programmeringsspråk som dessa, eller lära dig att använda PowerShell för att utföra många av samma uppgifter som du för närvarande använder batchjobb för.

Dela med sig Dela med sig Tweet E-post Ta bort dessa Windows -filer och mappar för att frigöra diskutrymme

Behöver du rensa diskutrymme på din Windows -dator? Här är Windows -filer och mappar som säkert kan raderas för att frigöra diskutrymme.

Läs Nästa
Relaterade ämnen
  • Windows
  • Programmering
  • Windows
Om författaren Ryan Dube(942 artiklar publicerade)

Ryan har en kandidatexamen i elektroteknik. Han har arbetat 13 år inom automationsteknik, 5 år inom IT och är nu en Apps Engineer. Han var tidigare chefredaktör för MakeUseOf och talade vid nationella konferenser om datavisualisering och har presenterats på nationell TV och radio.

vad är ett hack på en mobiltelefon
Mer från Ryan Dube

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e -böcker och exklusiva erbjudanden!

Klicka här för att prenumerera