5 IF -erklæringer som skal brukes for smartere Windows Batch Scripts

5 IF -erklæringer som skal brukes for smartere Windows Batch Scripts

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





I denne artikkelen skal du lære om de fem hovedtypene 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 skripting, la oss komme i gang!





1. Sammenlign verdier

En av de grunnleggende tingene du vanligvis må gjøre i et batch -script 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 den er under 3 GB, vil du få en e -postrapport som sier 'Harddiskplass for lav.'



Hvis du vil opprette et skript som sammenligner den nåværende ledige harddiskplassen med grensen din, kan du opprette følgende batch -skript og lagre 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 kommandoer du kan bruke til å hente PC -informasjon. Slik kaller 'wmic' -kommandoen i dette skriptet 'logicaldisk' -rommet og plasserer det i FreeSpace -variabelen. Nå kan du bare erstatte linjen 'Echo Ikke nok ledig plass' med en blat e -postkommando for å sende deg et varsel.





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

Hvis du aldri har brukt blat før, har vi en artikkel som viser deg hvordan du konfigurerer blat. Uvant med å sette opp planlagte jobber? Vi har dekket deg med en artikkel om hvordan du konfigurerer planlagte Windows -oppgaver.





2. String sammenligninger

En annen verdifull IF -sammenligning du kan gjøre i en batchjobb 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 raskt må kjøre et skript og kontrollere 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 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.

Slik ser utgangen av dette skriptet ut.

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

3. Sjekk om det finnes en fil

En annen nyttig situasjon der en IF -setning i en batchfil er å sjekk om det finnes en datafil .

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

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

(Vi har tidligere skrevet om hvordan bruk Windows -skript for å behandle data til en Excel -fil ; litt god bakgrunnslesning.)

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

@echo off
if exist c: empdatafile.txt (
%WINDIR%SysWOW64cmd.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 program som kjører som oppretter nye feillogger i en bestemt mappe når det er et problem, kan du kjøre en batchjobb så ofte for å overvåke om det opprettes nye feillogger, slik at du kan sende et varsel.

4. Sjekk om en kommando mislyktes

Et aspekt ved batchfilskripting som for få IT -folk eller programmerere bruker er se etter feil .

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

Det er mye smartere å få et varsel når batchjobben din har sviktet 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 med IF % ERRORLEVEL % -kommandoen. Hvis programmet eller kommandoen returnerte et null, er alt bra. Hvis ikke, må du sende deg en e -post.

@echo off
xcopy C:
omefolder E:ackupfolder
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 prøver å gjøre kopien ved hjelp av en alternativ kommando. Uansett handling du vil gjøre, lar IF % ERRORLEVEL % deg gjøre det.

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

5. Se etter manglende parametere

Den siste nyttige IF -setningen er ikke en spesifikk kommando, men i stedet for å kontrollere at skriptet mottatt de riktige inngangsparametrene .

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

Selvfølgelig kan du ikke kjøre skriptet på riktig måte uten banen som er angitt, så du kan sette en IF -setning i begynnelsen av skriptet for å sikre at begge parameterne ble angitt.

Slik ser det ut.

@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 aldri har brukt parametere med batch -skript før, representerer prosent -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 -uttalelser er det mulig å legge til mye mer intelligens i skriptene dine.

Selvfølgelig, hvis du virkelig vil øke det et hakk, kan du vurdere å ta en titt på VBA med guiden vår på opprette 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 for å utføre mange av de samme oppgavene du for øyeblikket bruker batchjobber til.

Dele Dele kvitring E -post Slett disse Windows -filene og mappene for å frigjøre diskplass

Trenger du å tømme diskplass på Windows -datamaskinen? Her er Windows -filer og mapper som trygt kan slettes for å frigjøre diskplass.

Les neste
Relaterte temaer
  • Windows
  • Programmering
  • Windows
Om forfatteren Ryan Dube(942 artikler publisert)

Ryan har en bachelorgrad i elektroteknikk. Han har jobbet 13 år innen automasjonsteknikk, 5 år innen IT, og er nå en Apps Engineer. En tidligere administrerende redaktør for MakeUseOf, han har talt på nasjonale konferanser om datavisualisering og har blitt omtalt på nasjonal TV og radio.

samsung pay vs android pay vs apple pay
Mer fra Ryan Dube

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!

Klikk her for å abonnere