5 IF -erklæringer, der skal bruges til smartere Windows Batch -scripts

5 IF -erklæringer, der skal bruges til smartere Windows Batch -scripts

Hvis du laver meget arbejde i Windows -batchfiler, vil IF -erklæring tilbyder en meget effektiv måde at tilføje fleksibilitet til dine scripts.





I denne artikel lærer du om de fem hovedtyper af IF -sætninger, du kan bruge i en Windows -batchfil, hvordan den korrekte syntaks ser ud og et realistisk eksempel for hver.





Hvis du er klar til at starte scripting, lad os komme i gang!





1. Sammenlign værdier

En af de grundlæggende ting, du normalt skal gøre i et batch -script, er sammenligne to værdier og følg en anden fremgangsmåde afhængigt af sammenligningen.

Lad os f.eks. Sige, at du ønskede at skrive et batch -script, der kontrollerer din computers harddiskstørrelse dagligt. Hvis den er under 3 GB, vil du få en e -mail -rapport, der siger, 'Harddiskplads for lav'.



Hvis du vil oprette et script, der sammenligner den nuværende ledige harddiskplads med din grænse, skal du oprette følgende batch -script og gemme 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 er Windows Management Instrumentation -komponenten i Windows, der leveres med et udvalg af kommandoer, du kan bruge til at hente pc -oplysninger. Sådan kalder kommandoen 'wmic' i dette script 'logicaldisk' -rummet og placerer det i FreeSpace -variablen. Nu kan du bare erstatte linjen 'Echo Ikke nok ledig plads' med en blat e -mail -kommando for at sende dig en advarsel.





Endelig skal du konfigurere dette script som et Windows -planlagt batchjob, der kører dagligt.

Hvis du aldrig har brugt blat før, har vi en artikel, der viser dig, hvordan du konfigurerer blat. Ukendt med opsætning af planlagte job? Vi har dækket dig med en artikel om, hvordan du konfigurerer Windows -planlagte opgaver.





2. Strenge sammenligninger

En anden værdifuld IF -sammenligning, du kan gøre i et batchjob, er sammenligne strenge .

I det følgende eksempel kan du se, hvordan du kontrollerer din Windows -version ved hjælp af et batchjob. Derefter kan du sammenligne dette med din forventede Windows -version.

Nogle anvendelser af dette script ville være til it -revisioner, når du hurtigt skal køre et script og sikre dig, at det nuværende operativsystem er det nyeste, eller om det har brug for en opgradering.

Sådan ser dette script ud.

@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ådan ser output fra dette script ud.

Evnen til at sammenligne strenge i batch åbner en hel liste over muligheder. Hvis du udforsker alle oplysninger, du kan få ud af en WMIC -kommando du kan se, hvor mange statistikker om din computer, du kan overvåge. Du kan bruge planlagte batchjob til at advare om disse.

3. Kontroller, om der findes en fil

En anden nyttig situation, hvor en IF -erklæring i en batchfil skal kontrollere, om der findes en datafil .

Mange gange er batchjobbet bare et overvågningsværktøj, der muligvis er planlagt til at søge efter nye indgående datafiler i et specifikt bibliotek.

Derefter kan batchjobbet enten kopiere filen til et andet sted, hvor den kan behandles, eller starte et Windows -script, der behandler filen til et Excel -output.

(Vi har tidligere skrevet om hvordan bruge Windows -scripts til behandling af data til en Excel -fil ; lidt god baglæsning.)

Det er hurtigt og nemt at bruge en batchfil til at kontrollere, om der findes en fil i et bibliotek. Sådan ser scriptet ud.

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

IF EXISTS -sammenligningen er nyttig til mange ting.

Hvis du f.eks. Kører et system eller et program, der opretter nye fejllogfiler i en bestemt mappe, når der er et problem, kan du køre et batchjob så ofte for at overvåge, om der oprettes nye fejllogfiler, så du kan sende en advarsel.

4. Kontroller, om en kommando mislykkedes

Et aspekt af batchfil scripting, som for få it -folk eller programmører bruger, er kontrollere for fejl .

Der flyder mange batchjobs derude, der udfører kritiske it -opgaver som at sikkerhedskopiere vigtige filer eller køre filkopiering. Når disse batchjob mislykkes, mislykkes systemer, og folk lægger mærke til det.

Det er meget smartere at få en advarsel, når dit batchjob har fejlet en kommando Før folk begynder at lægge mærke til det. På denne måde kan du løse problemet proaktivt.

Du kan gøre dette ved at bruge variablen % errorlevel %, som de fleste applikationer og kommandoer returnerer, efter at de er kørt.

Alt du skal gøre er at følge din kommando ved hjælp af IF % ERRORLEVEL % kommandoen. Hvis programmet eller kommandoen returnerede et nul, er alt i orden. Hvis ikke, skal du sende dig selv en e -mail.

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

Du behøver ikke at tage e -mail -ruten. Du kan altid skrive en fejllog, som du kan kontrollere hver morgen, eller starte et andet program eller en kommando, der forsøger at udføre kopien ved hjælp af en alternativ kommando. Uanset hvilken handling du vil foretage, lader IF % ERRORLEVEL % dig gøre det.

Hvis du hellere vil bruge en IF -erklæring til at kontrollere specifikke fejlkoder, tilbyder Windows en smuk omfattende liste over fejlkoder .

5. Kontroller, om der mangler parametre

Den sidste nyttige IF -sætning er ikke en specifik kommando, men i stedet for at kontrollere, at scriptet modtaget de relevante inputparametre .

Lad os f.eks. Sige, at du har skrevet et script, der udfører en xcopy -kommando fra en inputmappe, til en fælles netværksmappe, der bruges af et team. Brugeren skal bare følge dit scriptnavn med parametrene, der definerer deres personlige filsti.

Det er klart, at du ikke kan eksekvere dit script korrekt uden den angivne sti, så du kan sætte en IF -sætning i begyndelsen af ​​dit script for at sikre, at begge parametre blev indtastet.

Sådan ser det ud.

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

Hvis du aldrig har brugt parametre med batch -scripts før, repræsenterer procentsymbolet efterfulgt af et tal parametervariablen. %1 er den første parameter, %2 er den anden osv.

Batchjob kan være kraftfulde

Mange mennesker begynder at bruge batchjobs til simple opgaver, der skal udføres i rækkefølge. Med IF -udsagn er det muligt at tilføje meget mere intelligens til dine scripts.

Selvfølgelig, hvis du virkelig vil øge niveauet, kan du overveje at tage et kig på VBA med vores guide på oprettelse af din første VBA -applikation , eller måske endda lære Python -programmering.

Du kan ofte bruge mere avancerede programmeringssprog som disse eller lære at bruge PowerShell til at udføre mange af de samme opgaver, som du i øjeblikket bruger batchjob til.

Del Del Tweet E -mail Slet disse Windows -filer og mapper for at frigøre diskplads

Har du brug for at rydde diskplads på din Windows -computer? Her er Windows -filer og mapper, der sikkert kan slettes for at frigøre diskplads.

Læs Næste
Relaterede emner
  • Windows
  • Programmering
  • Windows
Om forfatteren Ryan Dube(942 artikler udgivet)

Ryan har en bachelorgrad i elektroteknik. Han har arbejdet 13 år inden for automationsteknik, 5 år inden for IT og er nu Apps Engineer. Tidligere administrerende redaktør for MakeUseOf har han talt på nationale konferencer om datavisualisering og er blevet vist på nationalt tv og radio.

hvordan man ved, om en youtube -video er ophavsretligt beskyttet
Mere fra Ryan Dube

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere