5 IF erklæringer til brug for smartere Windows Batch Scripts

Der er flere typer IF-udsagn, du kan bruge i en Windows-batchfil for at spare tid og kræfter. Tjek disse eksempler for at finde ud af mere.

Der er flere typer IF-udsagn, du kan bruge i en Windows-batchfil for at spare tid og kræfter.  Tjek disse eksempler for at finde ud af mere.
Reklame

Hvis du gør en masse arbejde i Windows-batch-filer, giver IF-erklæringen en meget kraftfuld måde at tilføje fleksibilitet til dine scripts.

I denne artikel vil du lære om de fem hovedtyper af IF-udsagn, 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 at sammenligne to værdier og følge en anden fremgangsmåde afhængigt af sammenligningen.

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

Hvis du vil oprette et script, der sammenligner den nuværende ledige plads på harddisken til din grænse, oprettes følgende batch script og gemmes 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 trække pc-oplysninger. Sådan kaldes kommandoen "wmic" i dette script kaldet "logicaldisk" -rummet og placerer det i FreeSpace-variablen. Nu kan du bare erstatte linjen "Ekko ikke nok ledig plads" med en blat email-kommando for at sende dig en advarsel.

Endelig sættes dette script op 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. Ubekendt med opsætning af planlagte job? Vi har fået dig dækket af en artikel om, hvordan du konfigurerer Windows-planlagte opgaver. 4 Boring Opgaver Du Kan Automatisere Med Windows Opgaveplanlægger 4 Boring Opgaver Du Kan Automatisere Med Windows Opgaveplanlægger Din tid er for værdifuld til at blive spildt med gentagne opgaver . Lad os vise dig, hvordan man automatiserer og planlægger opgaver. Vi har også nogle få gode eksempler. Læs mere .

2. Strenge Sammenligninger

En anden værdifuld IF sammenligning du kan gøre i et batch job er at sammenligne strenge .

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

Nogle anvendelser af dette script vil være til it-revisioner, når du skal hurtigt køre et script og sørge for, at det nuværende operativsystem er det nyeste, eller om det skal opgraderes.

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. 

Her ser udgangen af ​​dette script ud.

Batch File, Windows, Programmering

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

3. Kontroller, om der findes en fil

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

Mange gange er batchjobet kun et overvågningsværktøj, som måske er planlagt til at tjekke efter nye indgående datafiler i en bestemt mappe.

Derefter kan batchjobet enten kopiere den pågældende fil til et andet sted, hvor det kan behandles, eller slukke for nogle Windows-script, der behandler filen i en Excel-udgang.

(Vi har tidligere skrevet om, hvordan du bruger Windows-scripts til at behandle data til en Excel-fil. 5 Nyttige VB Windows-scripts til at automatisere computeren Brug 5 nyttige VB Windows-scripts til at automatisere computeren Brug fra webstedets overvågning til systemrapporter, lær hvordan at automatisere alle ting med disse fantastiske VB-scripts, du kan kode i Windows lige nu. Læs mere; Noget god baggrundsvisning.)

Brug af en batchfil til at kontrollere, om der findes en fil i en mappe, er hurtig og nem. Her er, hvad det script ser ud.

 @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 til mange ting.

For eksempel hvis du har et system eller et program kørende, 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, at for få IT-folk eller programmerere bruger, er at kontrollere fejl .

Der er mange batch jobs, der flyder rundt derude, der udfører kritiske it-opgaver som sikkerhedskopiering af vigtige filer eller kørsel af filkopiering. Når disse batchopgaver fejler, fejler systemer og folk opdager.

Det er meget smartere at få en advarsel, når dit batchjob har mislykket en kommando, før folk begynder at bemærke. På den måde kan du løse problemet proaktivt.

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

Alt du skal gøre er at følge din kommando med kommandoen IF% ERRORLEVEL%. Hvis applikationen eller kommandoen returneres et nul, er alt fint. Hvis ikke, så skal du sende dig en e-mail.

 @echo off xcopy C:\somefolder E:\backupfolder IF %ERRORLEVEL% NEQ 0 

Du behøver ikke tage e-mailruten. Du kan altid skrive en fejllog, som du kan tjekke hver morgen, eller starte en anden applikation eller kommando, der forsøger at gøre kopien ved hjælp af en alternativ kommando. Uanset hvilken handling du vil tage, kan IF% ERRORLEVEL% lade dig gøre det.

Hvis du hellere vil bruge en IF-erklæring for at kontrollere bestemte fejlkoder, tilbyder Windows en temmelig omfattende liste over fejlkoder.

5. Check for manglende parametre

Den sidste nyttige IF-erklæring er ikke en bestemt kommando, men i stedet for at kontrollere, at scriptet har modtaget de relevante inputparametre .

Lad os f.eks. Sige, at du har skrevet et script, som 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 de parametre, der definerer deres personlige filsti.

Du kan selvfølgelig ikke udføre dit script korrekt uden den angivne sti, så du kan sætte en IF-erklæring i begyndelsen af ​​scriptet for at sikre, at begge parametre blev indtastet.

Sådan ser det ud.

 @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 aldrig har brugt parametre med batch scripts før, repræsenterer procentdelen symbolet efterfulgt af et tal parametervariablen. % 1 er den første parameter, % 2 er den anden og så videre.

Batch Jobs kan være magtfulde

Mange mennesker begynder at bruge batchjob for enkle 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 ønsker at gå i gang med det, kan du overveje at kigge på VBA med vores vejledning om at oprette 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 5 grunde, du skal bruge PowerShell i stedet for batch scripting 5 grunde til at bruge PowerShell I stedet for batch scripting, PowerShell er det, du får, hvis du krydser kommandoprompt med Batch Scripting, kastede i nogle ekstra funktioner, og sparkede det hele op ad flere hak. Her er flere grunde, du bør prøve det. Læs mere for at udføre mange af de samme opgaver, som du i øjeblikket bruger batchjob for.

In this article