Annonse

Hvis du gjør mye arbeid i Windows-batchfiler, vil IF uttalelse tilbyr en veldig kraftig måte å legge til skriptene på.

I denne artikkelen skal du lære om de fem hovedtyper av IF-setninger du kan bruke i en Windows-batchfil, hvordan riktig syntaks ser ut, og et realistisk eksempel for hver.

Hvis du er klar til å starte skripting, la oss komme i gang!

1. Sammenlign verdier

En av de grunnleggende tingene du vanligvis trenger å gjøre i et batch-skript, er sammenligne to verdier og følg et annet handlingsforløp avhengig av sammenligningen.

La oss for eksempel si at du ønsket å skrive et batch-skript som sjekker datamaskinens harddiskstørrelse daglig. Hvis det er under 3 GB, vil du få en e-postrapport som sier: "Harddiskplass for lite."

For å lage et skript som sammenligner den gjeldende ledige harddiskplassen med grensen din, oppretter du følgende batch-skript og lagrer det som en .bat-fil.

@echo off. sett DriveLimit = 300000000. for / f "usebackq delims == tokens = 2" %% x in (`wmic logicaldisk hvor" DeviceID = 'C:' "få FreeSpace / format: value`) setter FreeSpace = %% x. Echo FreeSpace = "% FreeSpace%" Echo Limit = "% DriveLimit%" Hvis% FreeSpace% GTR% DriveLimit% (Echo Det er nok ledig plass. ) annet (Echo Ikke nok ledig plass. )
instagram viewer

WMIC er Windows Management Instrumentation-komponenten i Windows som kommer med et utvalg av kommandoer du kan bruke til å trekke PC-informasjon. Slik kaller “wmic” -kommandoen i dette skriptet “logicaldisk” -rommet og plasserer det i FreeSpace-variabelen. Nå kan du bare erstatte linjen “Echo Not nok ledig plass” med en blat e-postkommando for å sende deg et varsel.

Til slutt setter du dette skriptet opp som en planlagt batchjobb i Windows som kjøres daglig.

Hvis du aldri har brukt blat før, har vi en artikkel som viser deg hvordan sette opp blat. Er du ikke kjent med å sette opp planlagte jobber? Vi har fått deg en artikkel om hvordan du konfigurerer Windows planlagte oppgaver 4 kjedelige oppgaver du kan automatisere med Windows oppgaveplanleggingTiden din er for verdifull til å bli kastet bort med repeterende oppgaver. La oss vise deg hvordan du automatiserer og planlegger oppgaver. Vi har noen gode eksempler også. Les mer .

2. Streng-sammenligninger

En annen verdifull IF-sammenligning du kan gjøre i en batchjobb er sammenligne strenger.

I eksemplet nedenfor ser du hvordan du kan sjekke Windows-versjonen din ved hjelp av en batchjobb. Så kan du sammenligne dette med din forventede Windows-versjon.

Noen bruksområder av dette skriptet vil være til IT-revisjoner når du raskt trenger å kjøre et skript og sørge for at det nåværende operativsystemet er det siste, eller om det trenger en oppgradering.

Slik ser dette skriptet ut.

@echo off. for / f "tokens = 4-5 delims =. "%% i i ('ver') angir VERSION = %% i. %% j. hvis "% versjon%" == "6.0" gjentar Windows Vista. hvis "% versjon%" == "6.1" gjentar Windows 7. hvis "% versjon%" == "6.2" gjenkjenner Windows 8. hvis "% versjon%" == "6.3" gjentar Windows 8.1. hvis "% versjon%" == "10.0" gjentar Windows 10. 

Slik ser utdataene fra dette skriptet ut.

Batch-fil, Windows, programmering

Evnen til å sammenligne strenger i batch åpner en hel liste over muligheter. Hvis du utforsker alle informasjon du kan få fra en WMIC-kommando vil du se hvor mange statistikker om datamaskinen du kan overvåke. Du kan bruke planlagte batchjobber for å varsle om disse.

3. Sjekk om det finnes en fil

En annen nyttig situasjon der en IF-uttalelse i en batch-fil er å se etter om det finnes en datafil.

Mange ganger er batchjobben bare et overvåkingsverktøy som kan planlegges for å se etter nye innkommende datafiler i en bestemt katalog.

Deretter kan batchjobben enten kopiere den filen til et annet sted der den kan behandles, eller sparke av et Windows-skript som behandler filen til en Excel-utgang.

(Vi har skrevet tidligere om hvordan vi gjør det bruk Windows-skript for å behandle data til en Excel-fil 5 nyttige VB Windows-skript for å automatisere datamaskinbrukenFra nettstedovervåking til systemrapporter, lær hvordan du automatiserer alle tingene med disse fantastiske VB-skriptene du kan kode i Windows akkurat nå. Les mer ; litt god bakgrunnslesing.)

Det er raskt og enkelt å bruke en batch-fil for å sjekke om det finnes en fil i en katalog. Slik ser skriptet ut.

@echo off. hvis finnes c: \ temp \ datafile.txt (% WINDIR% \ SysWOW64 \ cmd.exe cscript LoadToExcel.vbs. ) annet (rem-fil finnes ikke. )

IF EXISTS-sammenligningen er nyttig for mange ting.

For eksempel hvis du har et system eller et program som kjører som oppretter nye feillogger i en bestemt mappe når det finnes et problem, du kan kjøre en batchjobb så ofte for å overvåke om det opprettes nye feillogger slik at du kan sende en varsling.

4. Sjekk om en kommando mislyktes

Et aspekt av batch-fil scripting som for få IT-personer eller programmerere bruker er sjekker for feil.

Det flyter mange batchjobber der ute som utfører kritiske IT-oppgaver som å sikkerhetskopiere viktige filer eller kjøre filkopiering. Når disse batchjobbene mislykkes, svikter systemene og folk legger merke til det.

Det er mye smartere å få et varsel når batchjobben din har mislyktes i en kommando før folk begynner å legge merke til. På denne måten kan du løse problemet proaktivt.

Du kan gjøre dette ved å bruke variabelen% errorlevel% som de fleste applikasjoner og kommandoer returnerer etter at de er kjørt.

Alt du trenger å gjøre er å følge kommandoen din med kommandoen IF% ERRORLEVEL%. Hvis applikasjonen eller kommandoen returnerte null, er alt bra. Hvis ikke, må du sende deg en e-post.

@echo off. xcopy C: \ somefolder E: \ backupfolder. HVIS% FEIL% NEQ 0 

Du trenger ikke å ta e-postveien. Du kan alltid skrive en feillogg som du kan sjekke hver morgen, eller starte et annet program eller kommando som prøver å gjøre kopien med en alternativ kommando. Uansett hva du vil gjøre, IF% ERRORLEVEL% lar deg gjøre det.

Hvis du heller vil bruke en IF-setning for å se etter spesifikke feilkoder, tilbyr Windows det ganske omfattende liste over feilkoder.

5. Se etter manglende parametere

Den siste nyttige IF-setningen er ikke en spesifikk kommando, men i stedet for å sjekke at skriptet mottatt passende inngangsparametere.

La oss for eksempel si at du har skrevet et skript som utfører en xcopy-kommando fra en inndatamappe, til en felles nettverksmappe som brukes av et team. Brukeren trenger bare å følge skriptnavnet med parametrene som definerer deres personlige filbane.

Det er klart at du ikke kan utføre skriptet ditt riktig uten å angi banen, så du kan legge en IF-setning i begynnelsen av skriptet for å sikre at begge parameterne ble lagt inn.

Slik ser det ut.

@echo off. HVIS [% 1] == [] ( GOTO sub_message. ) ELSE ( xcopy% 1 E: \ backupfolder. ) GOTO eof.: Sub_message. echo Du har glemt å spesifisere banen din.: Eof.

Hvis du aldri har brukt parametere med batch-skript før, representerer prosentsymbolet etterfulgt av et tall parametervariabelen. % 1 er den første parameteren,% 2 er den andre, og så videre.

Batchjobber kan være kraftige

Mange begynner å bruke batchjobber for enkle oppgaver som må utføres i rekkefølge. Med IF-uttalelser er det mulig å legge til mye mer intelligens til skriptene dine.

Selvfølgelig, hvis du virkelig vil øke det, kan du vurdere å se på VBA med vår guide om lage din første VBA-applikasjon, eller kanskje til og med lære Python programmering.

Du kan ofte bruke mer avanserte programmeringsspråk som disse, eller lære å bruke PowerShell 5 grunner til at du bør bruke PowerShell i stedet for batch scriptingPowerShell er hva du ville fått hvis du krysset Command Prompt med Batch Scripting, kastet inn noen ekstra funksjoner og sparket det hele opp flere hakk. Her er flere grunner til at du bør prøve det. Les mer , for å utføre mange av de samme oppgavene som du for tiden bruker batchjobber til.

Ryan har en BSc-grad i elektroteknikk. Han har jobbet 13 år innen automatisering, 5 år innen IT, og er nå en applikasjonsingeniør. Han var tidligere administrerende redaktør for MakeUseOf, han snakket på nasjonale konferanser om datavisualisering og har blitt omtalt på nasjonal TV og radio.