5 ALS verklaringen voor slimmere Windows Batch-scripts

5 ALS verklaringen voor slimmere Windows Batch-scripts / Programming

Als u veel werk in Windows-batchbestanden doet, is de IF-verklaring biedt 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 batch-script moet doen, is vergelijk twee waarden en volg een andere actie, 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 krijgen met de tekst, “Vaste 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 voor / 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%" Als% FreeSpace% GTR% DriveLimit% (Echo Er is voldoende vrije ruimte.) else (Echo Onvoldoende vrije ruimte.)

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. Dit is hoe het “wmic” commando in dit script roept de “Logische” ruimte en plaatst deze in de FreeSpace-variabele. Nu kunt u gewoon de lijn vervangen “Echo Niet genoeg vrije ruimte” met een blat email-commando om je een melding 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 strings vergelijken.

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 uit voor / f "tokens = 4-5 delims =." %% i in ('ver') zet VERSION = %% i. %% j als "% version%" == "6.0" echo Windows Vista . als "% version%" == "6.1" echo Windows 7 als "% version%" == "6.2" echo Windows 8 als "% version%" == "6.3" echo Windows 8.1 als "% version%" == "10.0" echo Windows 10. 

Dit is hoe de uitvoer van dit script eruit ziet.

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 controleer 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 scripts starten waarmee het bestand wordt verwerkt in 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 uit indien aanwezig c: \ temp \ datafile.txt (% WINDIR% \ SysWOW64 \ cmd.exe cscript LoadToExcel.vbs) anders (rem-bestand bestaat niet)

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 melding kunt verzenden.

4. Controleer of een opdracht is mislukt

Een aspect van batch-bestandsscripting dat te weinig IT-mensen of programmeurs gebruiken 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 ontvangen wanneer uw batchtaak een opdracht heeft mislukt voor mensen beginnen het te merken. 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 dat script te controleren de juiste invoerparameters 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 u uw script niet goed kunt uitvoeren zonder het opgegeven pad, dus u kunt een IF-instructie aan het begin van uw script plaatsen om te controleren of beide parameters zijn ingevoerd.

Dit is hoe dat eruit ziet.

@echo off IF [% 1] == [] (GOTO subbericht) ELSE (xcopy% 1 E: \ backupfolder) GOTO eof: sub_message echo U bent vergeten uw pad op te geven. : 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 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.

Ontdek meer over: Windows.