Oglas

Ako puno radite u Windows batch datotekama, IF izjava nudi vrlo moćan način za dodavanje fleksibilnosti svojim skriptama.

U ovom ćete članku saznati o pet glavnih vrsta IF izjava koje možete koristiti u Windows batch datoteci, kako izgleda ispravna sintaksa i realni primjer za svaku.

Ako ste spremni za početak skriptiranja, započnimo!

1. Usporedite vrijednosti

Jedna od osnovnih stvari koju obično trebate učiniti u paketnoj skripti je usporedite dvije vrijednosti i slijedite drugačiji postupak djelovanja ovisno o usporedbi.

Na primjer, recimo da ste htjeli napisati serijsku skriptu koja svakodnevno provjerava veličinu tvrdog diska vašeg računala. Ako je ispod 3 GB, želite dobiti izvješće e-poštom na kojem piše "prostora na tvrdom disku premalo."

Da biste stvorili skriptu koja uspoređuje trenutni slobodni prostor tvrdog diska s vašim ograničenjem, napravite sljedeću paketnu skriptu i spremite je u .bat datoteku.

@echo isključeno. postavite DriveLimit = 300000000. za / f "usebackq delims == tokens = 2" %% x in (`wmic logicdisk gdje" DeviceID = 'C:' "dobiti FreeSpace / format: vrijednost`) postavite FreeSpace = %% x. Echo FreeSpace = "% FreeSpace%" Ograničenje odjeka = "% DriveLimit%" Ako je% FreeSpace% GTR% DriveLimit% (jeka ima dovoljno slobodnog prostora. ) else (Odjek Nema dovoljno slobodnog prostora. )
instagram viewer

WMIC je komponenta sustava Windows Management Instrumentation koja se isporučuje s nizom naredbi koje možete koristiti za povlačenje podataka na računalu. Ovako naredba "wmic" u ovoj skripti naziva prostor "logicdisk" i stavlja ga u varijablu FreeSpace. Sada možete samo zamijeniti redak "Echo Not dovoljno slobodnog prostora" naredbom blatne e-pošte da bismo vam poslali upozorenje.

Napokon, postavite ovu skriptu kao skupni zadani raspored sustava Windows koji se izvodi svakodnevno.

Ako nikada prije niste koristili blat, imamo članak koji vam prikazuje kako postaviti blat. Nepoznato s postavljanjem zakazanih poslova? Objasnili smo vam članak o kako postaviti zadane zadatke sustava Windows 4 dosadne zadatke koje možete automatizirati pomoću programa Windows Task SchedulerVaše vrijeme je previše vrijedno da biste ga izgubili s ponavljajućim zadacima. Dopustite da vam pokažemo kako automatizirati i zakazati zadatke. Imamo i nekoliko sjajnih primjera. Čitaj više .

2. Usporedbe strune

Još jedna vrijedna IF usporedba koju možete napraviti u skupnom poslu je uspoređujući žice.

U sljedećem ćete primjeru vidjeti kako provjeriti svoju verziju sustava Windows koristeći paketni posao. Tada to možete usporediti s očekivanom verzijom sustava Windows.

Neke koristi ove skripte bile bi za IT revizije kada trebate brzo pokrenuti skriptu i provjeriti je li trenutni operativni sustav najnoviji ili mu treba nadogradnju.

Evo kako izgleda ova skripta.

@echo isključeno. za / f "tokene = 4-5 delims =. "%% i in ('ver") postavlja VERSION = %% i. %% j. ako "% inačica%" == "6.0" odjekuje Windows Vista. ako "% inačica%" == "6.1" odjekuje Windows 7. ako "% inačica%" == "6.2" odjekuje Windows 8. ako "% inačica%" == "6.3" odjekuje Windows 8.1. ako "% inačica%" == "10.0" odjekuje Windows 10. 

Evo kako izgleda rezultat ove skripte.

Batch datoteka, Windows, programiranje

Mogućnost uspoređivanja nizova u batchu otvara čitav popis mogućnosti. Ako istražite sve podatke koje možete dobiti iz WMIC naredbe vidjet ćete koliko statistika o vašem računalu možete pratiti. Za upozoravanje na njih možete koristiti zakazane skupne zadatke.

3. Provjerite postoji li datoteka

Još jedna korisna situacija u kojoj je IF izjava u batch datoteci provjerite postojanje datoteke s podacima.

Mnogo je puta paketni posao samo alat za praćenje koji bi mogao biti zakazan za provjeru novih datoteka dolaznih podataka u određenom direktoriju.

Zatim paketni posao može ili kopirati tu datoteku na drugo mjesto gdje se može obraditi, ili pokrenuti neki Windows skriptu koja datoteku obrađuje u Excel izlaz.

(Pisali smo u prošlosti o tome kako to učiniti koristite skripte sustava Windows za obradu podataka u datoteci Excel 5 korisnih skripti za VB Windows za automatizaciju korištenja računalaOd praćenja web mjesta do izvještaja o sustavu, naučite kako automatizirati sve stvari pomoću ovih nevjerojatnih VB skripti koje trenutno možete kodirati u sustavu Windows. Čitaj više ; dobro čitanje u pozadini.)

Korištenje batch datoteke za provjeru postoji li datoteka u direktoriju je brzo i jednostavno. Evo kako izgleda ta skripta

@echo isključeno. ako postoji c: \ temp \ datafile.txt (% WINDIR% \ SysWOW64 \ cmd.exe cscript LoadToExcel.vbs. ) else (datoteka Rem ne postoji. )

Usporedba IF EXISTS korisna je za mnoge stvari.

Na primjer, ako imate pokrenut sustav ili aplikaciju koja stvara nove zapise o pogreškama u određenoj mapi kad postoje problem, možete tako često izvoditi skupni posao da biste pratili stvaraju li se novi zapisi o pogreškama da biste mogli slati uzbuna.

4. Provjerite ako naredba nije uspjela

Aspekt skripti za skupne datoteke koji koristi premalo IT ljudi ili programera provjeravanje pogrešaka.

Vani pluta mnogo skupnih poslova koji izvode kritične IT zadatke poput izrade sigurnosne kopije važnih datoteka ili pokretanja operacija kopiranja datoteka. Kad ovi serijski poslovi ne uspiju, sustavi otkazuju i ljudi to primjećuju.

Puno je pametnije dobiti upozorenje kada vaš paketni posao nije uspio naredbu prije ljudi počnu primijetiti. Na ovaj način možete proaktivno riješiti problem.

To možete učiniti korištenjem varijable% errorlevel% koja se većina aplikacija i naredbi vraća nakon pokretanja.

Sve što trebate učiniti je slijediti vašu naredbu naredbom IF% ERRORLEVEL%. Ako je aplikacija ili naredba vratila nulu, sve je u redu. Ako ne, onda morate sami poslati e-poštu.

@echo isključeno. xcopy C: \ somefolder E: \ sigurnosna kopija. AKO% ERRORLEVEL% NEQ 0 

Ne morate krenuti putem e-pošte. Uvijek možete napisati dnevnik grešaka koji možete provjeriti svako jutro ili pokrenuti drugu aplikaciju ili naredbu koja pokušava napraviti kopiju alternativnom naredbom. Bez obzira što želite poduzeti, IF% ERRORLEVEL% dopušta vam da to učinite.

Ako radije koristite IF izjavu za provjeru postoje li specifični kodovi pogrešaka, Windows nudi prilično opsežan popis kodova grešaka.

5. Provjerite nedostajuće parametre

Posljednja korisna izjava IF nije određena naredba, već provjeravanje skripte primili odgovarajuće ulazne parametre.

Na primjer, recimo da ste napisali skriptu koja izvršava naredbu xcopy iz ulazne mape, u zajedničku mrežnu mapu koju koristi tim. Korisnik samo treba slijediti vaše ime skripte s parametrima koji definiraju njihov osobni put datoteke.

Očito je da skriptu ne možete pravilno izvršiti bez navedenog puta, pa možete staviti IF izjavu na početak skripte kako biste bili sigurni da su oba parametra unesena.

Evo kako to izgleda.

@echo isključeno. AKO [% 1] == [] ( GOTO pod-poruka. ) ELSE ( xcopy% 1 E: \ sigurnosna kopija. ) GOTO eof.: Sub_message. odjek Zaboravili ste navesti svoj put.: EOF.

Ako nikada prije niste upotrebljavali parametre sa paketnim skriptu, postotak simbol iza kojega slijedi broj predstavlja varijablu parametra. % 1 je prvi parametar,% 2 je drugi, i tako dalje.

Skupni poslovi mogu biti moćni

Mnogi ljudi počinju koristiti serijske zadatke za jednostavne zadatke koje je potrebno izvoditi u slijedu. IF izjavama moguće je dodati puno više inteligencije u svoje skripte.

Ako stvarno želite pojačati korak, razmislite o bacanju pogleda na VBA s našim vodičem o kreirajući svoju prvu VBA aplikacijuili možda čak naučite Python programiranje.

Često možete koristiti naprednije programske jezike poput ovih ili naučite koristiti PowerShell 5 razloga zbog kojih biste trebali koristiti PowerShell umjesto paketnog skriptiranjaPowerShell je ono što biste dobili ako biste prešli preko naredbenog retka s Batch Scripting, dodali neke dodatne značajke i sve to izbacili na nekoliko ureza. Evo nekoliko razloga što biste trebali isprobati. Čitaj više , za izvršavanje mnogih istih zadataka za koje trenutno koristite serijske zadatke.

Ryan je diplomirao elektrotehniku. Radio je 13 godina u inženjerstvu automatizacije, 5 godina u IT-u, a sada je Apps inženjer. Bivši glavni urednik MakeUseOfa, govorio je na nacionalnim konferencijama o vizualizaciji podataka i bio je prikazan na nacionalnoj televiziji i radiju.