5 IF Statements å bruke for smartere Windows Batch Scripts

Det finnes flere typer IF-setninger du kan bruke i en Windows-batchfil for å spare tid og krefter. Sjekk disse eksemplene for å finne ut mer.

Det finnes flere typer IF-setninger du kan bruke i en Windows-batchfil for å spare tid og krefter.  Sjekk disse eksemplene for å finne ut mer.
Annonse

Hvis du gjør mye arbeid i Windows-batchfiler, gir IF-setningen 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 trenger å gjøre i et batchskript, er å sammenligne to verdier og følge 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 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 som kommer med et utvalg av kommandoer du kan bruke til å trekke PC-informasjon. Slik kalles "wmic" -kommandoen i dette skriptet "logisk diskplass" 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 batchjobb, er å sammenligne strenge .

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 nyeste, eller om det trenger en oppgradering.

Slik ser dette skriptet ut.

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

Her ser utgangen av dette skriptet ut.

Batch File, Windows, Programmering

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 å sjekke at det eksisterer 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.

Deretter 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 off if exist c:\temp\datafile.txt ( %WINDIR%\SysWOW64\cmd.exe cscript LoadToExcel.vbs ) else ( rem file doesn't exist ) 

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 hver 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 å lete etter 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 å legge merke til. 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 off 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 skriptet har mottatt de riktige innspillparametrene .

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.

Selvfølgelig 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 off IF [%1]==[] ( GOTO sub_message ) ELSE ( xcopy %1 E:\backupfolder ) GOTO eof :sub_message echo You forgot to specify your path. :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 alt 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.

In this article