5 IF Statements å bruke for smartere Windows Batch Scripts
Hvis du gjør mye arbeid i Windows-batchfiler, vil IF uttalelse tilbyr en svært kraftig måte å legge til fleksibilitet på skriptene dine.
I denne artikkelen skal du lære om de fem hovedtyper av IF-setninger du kan bruke i en Windows-batchfil, hvordan den riktige syntaksen ser ut, og et realistisk eksempel for hver.
Hvis du er klar til å starte scripting, la oss komme i gang!
1. Sammenlign verdier
En av de grunnleggende tingene du vanligvis må gjøre i et batch script er sammenlign to verdier og følg en annen fremgangsmåte avhengig av sammenligningen.
For eksempel, la oss si at du ønsket å skrive et batch script som kontrollerer datamaskinens harddiskstørrelse daglig. Hvis det er under 3 GB, vil du få en e-postrapport som sier, “Harddiskplass for lavt.”
Hvis du vil opprette et skript som sammenligner gjeldende ledig harddiskplass til grensen din, oppretter du følgende batch script og lagrer det som en .bat-fil.
@echo av sett DriveLimit = 300000000 for / f "usebackq delims == tokens = 2" %% x in ('wmic logicaldisk der "DeviceID =' C: '" Få FreeSpace / format: value') sett FreeSpace = %% x Echo FreeSpace = "% FreeSpace%" Echo Limit = "% DriveLimit%" Hvis% FreeSpace% GTR% DriveLimit% (Echo Det er nok ledig plass.) ellers (Ekko Ikke nok ledig plass.)
WMIC er Windows Management Instrumentation-komponenten i Windows som kommer med et utvalg av kommandoer du kan bruke til å trekke PC-informasjon. Dette er hvordan “wmic” kommandoen i dette skriptet kalles “logicaldisk” plass og plasserer det i FreeSpace-variabelen. Nå kan du bare erstatte linjen “Ekko Ikke nok ledig plass” med en blat email-kommando for å sende deg et varsel.
Endelig, sett dette scriptet opp som en Windows-planlagt batchjobb som kjører daglig.
Hvis du aldri har brukt blat før, har vi en artikkel som viser hvordan du konfigurerer blat. Ukjent med å sette opp planlagte jobber? Vi har fått deg dekket med en artikkel om hvordan du konfigurerer Windows-planlagte oppgaver. 4 Boring Oppgaver Du Kan Automatisere Med Windows Oppgaveplanlegger 4 Boring Oppgaver Du Kan Automatisere Med Windows Oppgaveplanlegger Tiden din er for verdifull til å bli bortkastet med repeterende oppgaver. . La oss vise deg hvordan du automatiserer og planlegger oppgaver. Vi har også noen få gode eksempler. Les mer .
2. Strenge sammenligninger
En annen verdifull IF sammenligning du kan gjøre i en batch jobb er sammenligne strenger.
I det følgende eksemplet ser du hvordan du sjekker Windows-versjonen din ved hjelp av en batchjobb. Deretter kan du sammenligne dette med din forventede Windows-versjon.
Noen bruksområder for dette skriptet vil være for IT-revisjoner når du må raskt 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 av for / f "tokens = 4-5 delims =." %% jeg i ('ver') sett VERSION = %% i. %% j hvis "% version%" == "6.0" ekko Windows Vista . hvis "% version%" == "6.1" ekko Windows 7 hvis "% version%" == "6.2" ekko Windows 8 hvis "% version%" == "6.3" ekko Windows 8.1 hvis "% version%" == "10.0" ekko Windows 10.
Her ser utgangen av dette skriptet ut.
Evnen til å sammenligne strenger i batch åpner en hel liste over muligheter. Hvis du undersøker all informasjonen du kan få ut av en WMIC-kommando, får du se hvor mange statistikker du kan overvåke på datamaskinen din. Du kan bruke planlagte batchjobber for å varsle på disse.
3. Sjekk om en fil eksisterer
En annen nyttig situasjon der en IF-setning i en batchfil er til sjekk for eksistensen av en datafil.
Mange ganger er batchjobben bare et overvåkingsverktøy som kan være planlagt for å se etter nye innkommende datafiler i en bestemt katalog.
Da kan batchjoben enten kopiere den filen til et annet sted der den kan behandles, eller slå av noen Windows-skript som behandler filen til en Excel-utgang.
(Vi har tidligere skrevet om hvordan du bruker Windows-skript for behandling av data til en Excel-fil. 5 Nyttige VB Windows-skript for å automatisere datamaskinen Bruk 5 nyttige VB-Windows-skript for å automatisere datamaskinen. Bruk fra nettstedovervåkning til systemrapporter, lær hvordan for å automatisere alle tingene med disse fantastiske VB-skriptene du kan kode i Windows akkurat nå. Les mer, litt god bakgrunnsvisning.)
Ved å bruke en batchfil for å sjekke om en fil finnes i en katalog, er det raskt og enkelt. Slik ser det skriptet ut.
@echo av hvis det eksisterer c: \ temp \ datafile.txt (% WINDIR% \ SysWOW64 \ cmd.exe cscript LoadToExcel.vbs) ellers (remfil eksisterer ikke)
IF EXISTS-sammenligningen er nyttig for mange ting.
For eksempel hvis du har et system eller et program som kjører nye feillogger i en bestemt mappe når det er et problem, kan du kjøre en batchjobb så ofte for å overvåke om nye feillogger er opprettet slik at du kan sende et varsel.
4. Sjekk om en kommando mislyktes
Et aspekt av batchfilskripting som for få IT-folk eller programmerere bruker er sjekker for feil.
Det er mange batchjobber som flyter rundt der ute som utfører kritiske IT-oppgaver som sikkerhetskopiering av viktige filer eller kjøring av filkopiering. Når disse batchjobber feiler, svikter systemene og folk oppdager.
Det er mye smartere å få et varsel når batchjobben din har mislyktes en kommando før folk begynner å merke seg. På denne måten kan du løse problemet proaktivt.
Du kan gjøre dette ved å bruke% errorlevel% variabelen som de fleste applikasjoner og kommandoer returnerer etter at de kjøres.
Alt du trenger å gjøre er å følge kommandoen din med kommandoen IF% ERRORLEVEL%. Hvis applikasjonen eller kommandoen returnerte en null, er alt bra. Hvis ikke, må du sende deg en e-post.
@echo av xcopy C: \ somefolder E: \ backupfolder IF% ERRORLEVEL% NEQ 0
Du trenger ikke å ta e-postruten. Du kan alltid skrive en feillogg som du kan sjekke hver morgen, eller starte et nytt program eller en kommando som forsøker å gjøre kopien ved hjelp av en alternativ kommando. Uansett hvilken handling du vil ta, kan IF% ERRORLEVEL% du gjøre det.
Hvis du hellere vil bruke en IF-setning for å se etter bestemte feilkoder, tilbyr Windows en ganske omfattende liste over feilkoder.
5. Kontroller manglende parametere
Den siste nyttige IF-setningen er ikke en bestemt kommando, men i stedet for å kontrollere at manuset mottok de riktige inngangsparametrene.
For eksempel, la oss si at du har skrevet et skript som utfører en xcopy-kommando fra en innmatingsmappe, til en felles nettverksmappe som brukes av et lag. Brukeren må bare følge skriptnavnet med parameterne som definerer sin personlige filbane.
Åpenbart kan du ikke utføre skriptet ditt riktig uten den angitte banen, så du kan sette en IF-setning i begynnelsen av skriptet for å sikre at begge parametrene ble skrevet inn.
Slik ser det ut.
@echo av IF [% 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 batchskript før, representerer prosentvis symbolet 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-setninger er det mulig å legge til mye mer intelligens til skriptene dine.
Selvfølgelig, hvis du virkelig ønsker å ta det opp, kan du vurdere å ta en titt på VBA med vår guide om å lage ditt første VBA-program, 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 du bør bruke PowerShell i stedet for batch scripting 5 grunner til at du bør bruke PowerShell I stedet for batchskripting PowerShell er hva du vil få hvis du krysset kommandoprompt 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 å oppnå mange av de samme oppgaver som du for øyeblikket bruker batchjobber for.
Utforsk mer om: Windows.