5 ALS verklaringen voor slimmere Windows Batch-scripts

Er zijn verschillende soorten IF-instructies die u in een Windows-batchbestand kunt gebruiken om tijd en moeite te besparen. Bekijk deze voorbeelden voor meer informatie.

Er zijn verschillende soorten IF-instructies die u in een Windows-batchbestand kunt gebruiken om tijd en moeite te besparen.  Bekijk deze voorbeelden voor meer informatie.
Advertentie

Als u veel werk doet in Windows-batchbestanden, biedt de IF-instructie een zeer krachtige manier om flexibiliteit aan uw scripts toe te voegen.

In dit artikel leert u over de vijf hoofdtypen IF-instructies die u in een Windows-batchbestand kunt gebruiken, hoe de juiste syntaxis eruit ziet en een realistisch voorbeeld voor elk.

Als u klaar bent om te beginnen met scripten, laten we aan de slag gaan!

1. Vergelijk waarden

Een van de basisdingen die u gewoonlijk in een batchty script moet doen, is twee waarden vergelijken en een andere gedragslijn volgen, afhankelijk van de vergelijking.

Stel dat u bijvoorbeeld een batch-script wilt schrijven dat dagelijks de grootte van uw harde schijf van uw computer controleert. Als het minder dan 3 GB is, wil je een e-mailrapport ontvangen met de tekst 'Harde schijfruimte te laag'.

Als u een script wilt maken dat de huidige vrije ruimte op de harde schijf vergelijkt met uw limiet, maakt u het volgende batchscript en slaat u het op als een .bat-bestand.

@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 is het Windows Management Instrumentation-onderdeel van Windows dat wordt geleverd met een assortiment opdrachten die u kunt gebruiken om pc-informatie op te halen. Op deze manier roept de "wmic" -opdracht in dit script de "logicaldisk" -ruimte op en plaatst deze in de FreeSpace-variabele. Nu kun je gewoon de regel "Echo Niet genoeg vrije ruimte" vervangen door een blat email-opdracht om je een waarschuwing te sturen.

Stel tot slot dit script in als een Windows geplande batchtaak die dagelijks wordt uitgevoerd.

Als je nog nooit eerder blat hebt gebruikt, hebben we een artikel dat je laat zien hoe je blat kunt instellen. Onbekend met het instellen van geplande taken? We hebben een artikel over het instellen van geplande Windows-taken 4 Saaie taken die u kunt automatiseren met de Windows-taakplanner 4 Saaie taken die u kunt automatiseren met de Windows-taakplanner Uw tijd is te waardevol om te worden verspild met repetitieve taken . Laten we u laten zien hoe u taken kunt automatiseren en plannen. We hebben ook enkele geweldige voorbeelden. Lees verder .

2. Stringvergelijkingen

Een andere waardevolle IF-vergelijking die u in een batchtaak kunt doen, is het vergelijken van strings .

In het volgende voorbeeld ziet u hoe u uw Windows-versie controleert met behulp van een batchtaak. Dan kun je dit vergelijken met je verwachte Windows-versie.

Sommige toepassingen van dit script zijn bedoeld voor IT-audits wanneer u snel een script moet uitvoeren en ervoor moet zorgen dat het huidige besturingssysteem de nieuwste versie is, of dat het een upgrade nodig heeft.

Dit is hoe dit script eruit ziet.

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

Dit is hoe de uitvoer van dit script eruit ziet.

Batchbestand, Windows, Programmeren

De mogelijkheid om strings in batch te vergelijken, opent een hele lijst met mogelijkheden. Als u alle informatie verkent die u uit een WMIC-opdracht kunt halen, ziet u alleen hoeveel statistieken over uw computer u kunt controleren. U kunt geplande batchtaken gebruiken om hierover te waarschuwen.

3. Controleer of een bestand bestaat

Een andere nuttige situatie waarin een IF-statement in een batchbestand is om te controleren op het bestaan ​​van een gegevensbestand .

Vaak is de batchtaak slechts een controletool die kan worden gepland om te controleren op nieuwe inkomende gegevensbestanden in een specifieke map.

Vervolgens kan de batchtaak het bestand kopiëren naar een andere locatie waar het kan worden verwerkt, of een script starten dat het bestand verwerkt tot een Excel-uitvoer.

(We hebben in het verleden geschreven over het gebruik van Windows-scripts voor het verwerken van gegevens in een Excel-bestand 5 Handige VB Windows-scripts om uw computer te automatiseren Gebruik 5 nuttige VB-Windows-scripts om uw computer te automatiseren Gebruik Van website monitoring tot systeemrapporten, leer hoe om alle dingen te automatiseren met deze geweldige VB-scripts die u nu in Windows kunt coderen. Meer informatie; een goede achtergrondinformatie.)

Het gebruik van een batchbestand om te controleren of een bestand in een map bestaat, is snel en eenvoudig. Dit is hoe het script eruit ziet.

 @echo off if exist c:\temp\datafile.txt ( %WINDIR%\SysWOW64\cmd.exe cscript LoadToExcel.vbs ) else ( rem file doesn't exist ) 

De IF EXISTS-vergelijking is voor veel dingen nuttig.

Als u bijvoorbeeld een systeem of toepassing hebt die nieuwe foutlogboeken in een specifieke map maakt wanneer er een probleem is, kunt u zo nu en dan een batchtaak uitvoeren om te controleren of er nieuwe foutenlogboeken worden gemaakt, zodat u een waarschuwing kunt verzenden.

4. Controleer of een opdracht is mislukt

Een aspect van batch-bestandsscripting dat te weinig IT-gebruikers of programmeurs gebruiken, is controleren op fouten .

Er zweven veel batchtaken rond die IT-taken uitvoeren, zoals het maken van back-ups van belangrijke bestanden of het uitvoeren van bestandskopieerbewerkingen. Wanneer deze batchtaken mislukken, mislukken systemen en merken mensen dit.

Het is veel slimmer om een ​​waarschuwing te krijgen wanneer uw batchtaak een opdracht heeft gefaald voordat mensen het opmerken. Op deze manier kunt u het probleem proactief oplossen.

U kunt dit doen door de% errorlevel% -variabele te gebruiken die de meeste toepassingen en opdrachten teruggeven nadat ze zijn uitgevoerd.

Het enige dat u hoeft te doen, is uw opdracht te volgen met de opdracht IF% ERRORLEVEL%. Als de toepassing of opdracht een nul opleverde, is alles in orde. Zo niet, dan moet je jezelf een e-mail sturen.

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

U hoeft de e-mailroute niet te volgen. U kunt altijd een foutenlogboek schrijven dat u elke ochtend kunt controleren, of een tweede toepassing of een nieuwe opdracht starten die de kopie probeert te doen met een alternatieve opdracht. Welke actie u ook wilt ondernemen, IF% ERRORLEVEL% laat u het doen.

Als u liever een IF-instructie gebruikt om te controleren op specifieke foutcodes, biedt Windows een behoorlijk uitgebreide lijst met foutcodes.

5. Controleer op ontbrekende parameters

De laatste nuttige IF-instructie is geen specifieke opdracht, maar in plaats daarvan om te controleren of het script de juiste invoerparameters heeft ontvangen .

Laten we bijvoorbeeld zeggen dat u een script hebt geschreven dat een xcopy-opdracht uitvoert vanuit een invoermap naar een gemeenschappelijke netwerkmap die door een team wordt gebruikt. De gebruiker hoeft alleen maar uw scriptnaam te volgen met de parameters die zijn persoonlijke bestandspad definiëren.

Het is duidelijk dat je je script niet goed kunt uitvoeren zonder het opgegeven pad, dus je kunt een IF-statement aan het begin van je script plaatsen om er zeker van te zijn dat beide parameters zijn ingevoerd.

Dit is hoe dat eruit ziet.

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

Als u nog nooit parameters met batch-scripts hebt gebruikt, vertegenwoordigt het percentagesymbool gevolgd door een cijfer de parametervariabele. % 1 is de eerste parameter, % 2 is de tweede, enzovoort.

Batch-opdrachten kunnen krachtig zijn

Veel mensen beginnen met het gebruik van batchtaken voor eenvoudige taken die achtereenvolgens moeten worden uitgevoerd. Met IF-instructies is het mogelijk om veel meer intelligentie toe te voegen aan uw scripts.

Natuurlijk, als je echt een stapje hoger wilt gaan, kun je overwegen om VBA te bekijken met onze gids over het maken van je eerste VBA-toepassing, of misschien zelfs om Python-programmeren te leren.

U kunt vaak geavanceerdere programmeertalen gebruiken, of leren PowerShell 5 te gebruiken Redenen die u moet gebruiken PowerShell in plaats van Batch-scripting 5 Redenen die u moet gebruiken PowerShell in plaats van Batch-scripting PowerShell is wat u zou krijgen als u de opdrachtprompt met Batch-scripting, gooide wat extra functies in en schopte het allemaal verschillende inkepingen op. Hier zijn verschillende redenen waarom je het zou moeten proberen. Meer lezen om veel van dezelfde taken uit te voeren waarvoor u momenteel batchtaken gebruikt.

In this article