
Owen Little
0
3165
625
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 započeti pisanje scenarija, započnimo!
1. Usporedite vrijednosti
Jedna od osnovnih stvari koju obično trebate učiniti u skupnom scenariju 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 u kojem piše, “Prostor na tvrdom disku prenizak.”
Da biste stvorili skriptu koja uspoređuje trenutni slobodni prostor tvrdog diska s vašim ograničenjem, trebali biste stvoriti sljedeću batch skriptu i spremiti je u .bat datoteku.
@echo off set 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%" Echo Limit = "% DriveLimit%" Ako% FreeSpace% GTR% DriveLimit% (Eho ima dovoljno slobodnog prostora.) ostalo (Echo Nema dovoljno slobodnog prostora.)
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 “wmic” naredba u ovoj skripti zove “logicaldisk” prostora i smješta ga u varijablu FreeSpace. Sada možete samo zamijeniti liniju “Odjek Nema dovoljno slobodnog prostora” pomoću naredbe blatne e-pošte da vam pošalje upozorenje.
Na kraju, postavite ovu skriptu kao skupni zadani raspored sustava Windows koji se izvodi svakodnevno.
Ako nikad prije niste koristili blat, imamo članak koji vam pokazuje kako postaviti blat. Nepoznato s postavljanjem zakazanih poslova? Objasnili smo vam članak o tome kako postaviti zakazane zadatke za Windows. 4 Dosadni zadaci koje možete automatizirati pomoću programa Windows Task Scheduler. 4 Dosadni zadaci koje možete automatizirati pomoću programa Windows Task Scheduler Vrijeme je previše dragocjeno da biste ga izgubili s ponavljajućim zadacima , Dopustite da vam pokažemo kako automatizirati i zakazati zadatke. Imamo i nekoliko sjajnih primjera. .
2. Gudačke usporedbe
Još jedna vrijedna IF usporedba koju možete napraviti u skupnom poslu je uspoređujući žice.
U slijedećem primjeru vidjet ćete kako provjeriti verziju sustava Windows koristeći paketni posao. Tada to možete usporediti s očekivanom verzijom sustava Windows.
Neke bi koristi ove skripte bile za IT reviziju kada trebate brzo pokrenuti skriptu i provjeriti je li trenutni operativni sustav najnoviji ili mu treba nadogradnju.
Evo kako izgleda ova skripta.
@echo off for / f "tokens = 4-5 delims =." %% i in ('ver ") postavite 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" odjekne Windows 8.1 ako "% inačica%" == "10.0" odjekuje Windows 10.
Evo kako izgleda ishod ove skripte.
Mogućnost uspoređivanja nizova u batchu otvara čitav popis mogućnosti. Ako istražite sve podatke koje možete dobiti iz naredbe WMIC, 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đenoj mapi.
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 koristiti Windows skripte za obradu podataka u Excelovoj datoteci. 5 Korisnih skripti za VB Windows za automatizaciju vašeg računala. 5 korisnih skripti za VB Windows za automatizaciju korištenja računala da automatizirate sve stvari pomoću ovih nevjerojatnih VB skripti koje trenutno možete kodirati u sustavu Windows; nekoliko dobrih pozadinskih čitanja.)
Korištenje batch datoteke za provjeru postoji li datoteka u direktoriju je brzo i jednostavno. Evo kako izgleda ta skripta.
@echo off ako postoji c: \ temp \ datafile.txt (% WINDIR% \ SysWOW64 \ cmd.exe cscript LoadToExcel.vbs) ostalo (datoteka datoteka 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 postoji problem, možete tako često izvoditi skupni zadatak da nadgledate jesu li stvoreni novi zapisi o pogreškama kako biste mogli poslati upozorenje.
4. Provjerite ako naredba nije uspjela
Aspekt skripti za skupne datoteke koji koristi premalo IT ljudi ili programera provjeravanje pogrešaka.
Tamo pluta puno 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 su aplikacija ili naredba vratili nulu, sve je u redu. Ako ne, onda morate poslati e-poštu.
@echo off xcopy C: \ somefolder E: \ backup folder IF% 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ćih šifri 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 izvodi naredbu xcopy iz ulazne mape, u zajedničku mrežnu mapu koju koristi tim. Korisnik samo mora slijediti vaše ime skripte s parametrima koji definiraju njihov osobni put datoteke.
Očito je da ne možete pravilno izvršiti skriptu 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 off IF [% 1] == [] (GOTO pod_mesa) ELSE (xcopy% 1 E: \ backup folder) GOTO eof: sub_message echo Zaboravili ste navesti svoj put. : EOF
Ako nikada prije niste koristili parametre sa batch skriptama, postotak simbola praćen brojem 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. S IF izjavama moguće je dodati puno više inteligencije u svoje skripte.
Ako stvarno želite to povećati, možete razmotriti VBA s našim vodičem o stvaranju vaše prve VBA aplikacije ili možda čak naučiti Python programiranje.
Često možete koristiti naprednije programske jezike poput ovih ili naučiti koristiti PowerShell 5 razloga zbog kojih biste trebali koristiti PowerShell umjesto paketnog skriptiranja 5 razloga zbog kojih biste trebali koristiti PowerShell umjesto paketnog skripti PowerShell je ono što biste dobili ako biste prešli s naredbenog retka sa Batch Scripting, ubacio je neke dodatne značajke i sve to izbacio na nekoliko zareza. Evo nekoliko razloga što biste trebali isprobati. , za izvršavanje mnogih istih zadataka za koje trenutno koristite serijske zadatke.