Allt för att arbeta med Windows - det bästa operativsystemet från Microsoft. Vi täcker allt från Windows 10 Insider -programmet till Windows 11. Ger dig alla de senaste nyheterna om Windows 10 och mer.

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

16

Om du gör mycket arbete i Windows batchfiler, erbjuder IF-satsen 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 fem huvudtyper av IF-satser du kan använda i en Windows-batchfil, hur den korrekta syntaxen ser ut och ett realistiskt exempel för var och en.

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 att jämföra två värden och följa en annan handling beroende på jämförelsen.

Låt oss till exempel säga att du vill skriva ett batchskript som kontrollerar din dators hårddiskstorlek dagligen. Om det är under 3 GB vill du få en e-postrapport som säger "Hårddiskutrymme för litet."

För att skapa ett skript som jämför det nuvarande lediga hårddiskutrymmet med din gräns, måste du skapa följande batchskript och spara det som en .bat-fil.

@echo offset DriveLimit=300000000for /f "usebackq delims== tokens=2" %%x in (`wmic logicaldisk where "DeviceID='C:'" get FreeSpace /format:value`) do set FreeSpace=%%xEcho FreeSpace="%FreeSpace%"Echo Limit="%DriveLimit%"If %FreeSpace% GTR %DriveLimit% (Echo There is enough free space.) else (Echo Not enough free space.)

I skriptet är WMIC Windows Management Instrumentation-komponenten (WMI) i Windows som kommer med ett urval av kommandon som du kan använda för att hämta information från din PC.

Så här anropar kommandot "wmic" i det här skriptet logicaldisk space och placerar det i FreeSpace- variabeln.

Nu kan du bara ersätta raden Echo Inte tillräckligt med ledigt utrymme med ett kommando för att skicka en varning via e-post. Ställ in skriptet så att det körs dagligen.

2 Strängjämförelser

En annan värdefull IF-jämförelse du kan göra i ett batchjobb är att jämföra 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-revisioner när du snabbt behöver köra ett skript och se till att det nuvarande operativsystemet är det senaste eller om det behöver en uppgradering.

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

@echo offfor /f "tokens=4-5 delims=. " %%i in ('ver') do set VERSION=%%i.%%jif "%version%" == "6.0" echo Windows Vista.if "%version%" == "6.1" echo Windows 7if "%version%" == "6.2" echo Windows 8if "%version%" == "6.3" echo Windows 8.1if "%version%" == "10.0" echo Windows 10.

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

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

Möjligheten att jämföra strängar i en batch öppnar upp en hel lista med möjligheter. Om du utforskar all information du kan få från ett WMIC-kommando, ser du hur mycket statistik om din dator du kan övervaka.

Dessutom kan du till och med använda schemalagda batchjobb för att få varningar om dessa.

3 Kontrollera om en fil finns

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

Många gånger är batchjobbet bara ett övervakningsverktyg som du kan schemalägga för att leta efter nya inkommande datafiler i en specifik katalog. Sedan kan du antingen kopiera den filen till en annan plats eller starta något Windows-skript som bearbetar filen till en Excel-utdata.

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 skriptet ut:

@echo offif exist c:tempdatafile.txt (%WINDIR%SysWOW64cmd.exe cscript LoadToExcel.vbs) else (rem file doesn't exist)

Jämförelsen OM FINNS är användbar för många saker.

Om du till exempel har ett system eller program igång som skapar nya felloggar i en specifik mapp när det finns ett problem, kan du köra ett batchjobb då och då. På så sätt kan du enkelt övervaka om nya felloggar skapas så att du kan skicka en varning.

4 Kontrollera om ett kommando misslyckades

En aspekt av batchfilskript som alltför få IT-folk eller programmerare använder är att leta efter fel.

Det finns många batchjobb som flyter runt där ute som utför kritiska IT-uppgifter som att säkerhetskopiera viktiga filer eller köra filkopieringsoperationer. När dessa batchjobb misslyckas, misslyckas systemen, och folk brukar lägga märke till det.

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

Du kan göra detta genom att använda variabeln %errorlevel% som de flesta applikationer 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%.

@echo offxcopy C:omefolder E:backupfolderIF %ERRORLEVEL% NEQ 0 <blat command to send email>

Om programmet eller kommandot returnerar en nolla är allt bra. Om inte, måste du skicka ett e-postmeddelande till dig själv.

Du behöver dock 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 kopiera med ett alternativt kommando.

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

5 Kontrollera om det saknas parametrar

Den sista användbara IF-satsen är inte för ett specifikt kommando utan istället för att kontrollera att skriptet fick rätt indataparametrar.

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 filsökväg.

Du kan inte köra ditt skript korrekt utan den angivna sökvägen, så du kanske vill sätta en IF-sats i början av ditt skript för att se till att båda parametrarna är angivna.

@echo offIF [%1]==[] (GOTO sub_message) ELSE (xcopy %1 E:backupfolder)GOTO eof:sub_messageecho You forgot to specify your path.:eof

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

I allmänhet är IF-satser för praktiska och du behöver inte skriva för många koder för att faktiskt använda dem. Naturligtvis, om du vill öka det ett snäpp, kan du överväga att ta en titt på VBA med vår guide för att skapa din första VBA-applikation.

Batchjobb kan vara kraftfulla

Många började använda batch-jobb för enkla uppgifter som måste utföras sekventiellt. Tack och lov, med IF-uttalanden, är det möjligt att lägga till mycket mer logik till dina skript.

Dessutom kan du ofta använda mer avancerade programmeringsspråk och använda PowerShell för att utföra många av samma uppgifter som du för närvarande använder batchjobb för.

Inspelningskälla: www.makeuseof.com

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer