Reklaam

Kui teete Windowsi pakettfailides palju tööd, siis IF avaldus pakub väga võimsat viisi skriptide paindlikkuse suurendamiseks.

Selles artiklis tutvute viie peamise IF-lausete tüübiga, mida saate Windowsi pakkfailis kasutada, kuidas õige süntaks välja näeb ja nende kohta realistliku näite.

Kui olete valmis skriptima asuma, alustame!

1. Võrdle väärtusi

Üks põhilisi asju, mida peate tavaliselt pakettskriptis tegema, on võrrelge kahte väärtust ja järgige erinevat toimimisviisi sõltuvalt võrdlusest.

Oletagem näiteks, et soovisite kirjutada partii skripti, mis kontrollib teie arvuti kõvaketta suurust iga päev. Kui selle maht on alla 3 GB, soovite saada meilisõnumi, mis ütleb: „Kõvaketta ruumi on liiga vähe”.

Skripti loomiseks, mis võrdleb praegust vaba kõvaketta ruumi teie limiidiga, looge järgmine pakettskript ja salvestage see .bat-failina.

@echo välja lülitatud. määrake DriveLimit = 300000000. for / f "usebackq delims == tokens = 2" %% x in (`wmic loogiline ketas, kus" DeviceID = 'C:' "hankige FreeSpace / format: value`) määrake FreeSpace = %% x. Echo FreeSpace = "% FreeSpace%" Kaja limiit = "% DriveLimit%" Kui% FreeSpace% GTR% DriveLimit% (Echo Vaba ruumi on piisavalt. ) else (Echo Pole piisavalt vaba ruumi. )

WMIC on Windowsi Windowsi juhtimisinstrumentide komponent, mis sisaldab komplekti käske, mida saate kasutada arvutiteabe kogumiseks. Nii kutsub selle skripti käsk “wmic” ruumi “logikett” ja paigutab selle FreeSpace'i muutujasse. Nüüd saate lihtsalt asendada rea ​​“Kaja pole piisavalt vaba ruumi” märguande saatmiseks käsuga blat email.

Lõpuks määrake see skript Windowsi ajastatud pakkimistööna, mis töötab iga päev.

Kui te pole kunagi blatti kasutanud, on meil teile artikkel, mis seda näitab kuidas blatti üles seada. Kas te ei tunne plaanitud tööde seadistamist? Oleme teid katnud artikliga, mis käsitleb kuidas seadistada Windowsi ajastatud ülesandeid 4 igavat ülesannet, mida saate Windowsi toiminguajasti abil automatiseeridaTeie aeg on liiga väärtuslik, et seda korduvate ülesannetega raisata. Lubage meil näidata, kuidas ülesandeid automatiseerida ja ajastada. Ka meil on mõned suurepärased näited. Loe rohkem .

2. Stringvõrdlused

Veel üks väärtuslik IF-võrdlus, mida saate paketttöös teha, on keelpillide võrdlemine.

Järgmises näites näete, kuidas kontrollida Windowsi versiooni paketttöö abil. Siis saate seda võrrelda oma eeldatava Windowsi versiooniga.

Mõni selle skripti kasutamine on mõeldud IT-audititeks, kui peate skripti kiiresti käivitama ja veenduma, et praegune opsüsteem on uusim või vajab see värskendust.

See skript näeb välja selline.

@echo välja lülitatud. for / f "märgid = 4-5 delime =. "%% i in ('ver') seab VERSION = %% i. %% j. kui "% version%" == "6.0" kajastab Windows Vistat. kui "% version%" == "6.1" kajastab Windows 7. kui "% version%" == "6.2" kajastab Windows 8. kui "% version%" == "6.3" kajastab Windows 8.1. kui "% version%" == "10.0" kajastavad Windows 10. 

Selle skripti väljund näeb välja järgmine.

Pakkfail, Windows, programmeerimine

Võimalus stringe partiis võrrelda, avab terve hulga võimalusi. Kui uurite kõiki teave, mida saate WMIC-käsust saada näete ainult seda, kui palju statistikat teie arvuti kohta saate jälgida. Nende kohta teate saamiseks võite kasutada ajastatud pakkimistöid.

3. Kontrollige, kas faili on olemas

Veel üks kasulik olukord, kus IF-avaldus pakkefailis on kontrollige andmefaili olemasolu.

Paljud korrad on lihtsalt jälgimisriist, mis võib olla kavandatud kontrollima, kas konkreetses kataloogis on uusi sissetulevaid andmefaile.

Seejärel võib pakkimistöö kopeerida selle faili teise kohta, kus seda saab töödelda, või käivitada mõne Windowsi skripti, mis töötleb faili Exceli väljundiks.

(Oleme varem kirjutanud, kuidas seda teha kasutage Windowsi skripte andmete töötlemiseks Exceli faili 5 Kasulikud VB Windowsi skriptid teie arvuti kasutamise automatiseerimiseksAlates veebisaidi jälgimisest kuni süsteemiaruanneteni saate teada, kuidas automatiseerida kõiki asju nende imeliste VB-skriptidega, mida saate Windowsis praegu kodeerida. Loe rohkem ; mõned head taustlugemised.)

Pakkfaili kasutamine faili leidmiseks kataloogis on kiire ja lihtne. See skript välja näeb.

@echo välja lülitatud. kui olemas, c: \ temp \ datafile.txt (% WINDIR% \ SysWOW64 \ cmd.exe cscript LoadToExcel.vbs). ) else (rem-faili pole olemas. )

KUI VÄLJASOLEV võrdlus on kasulik paljude asjade jaoks.

Näiteks kui teil töötab süsteem või rakendus, mis loob konkreetses kaustas, kui seal on, uued vealogid Kui teil on probleem, saate iga kord nii sageli paketti käivitada, et jälgida, kas luuakse uusi vealogisid, et saaksite saata valvel.

4. Kontrollige, kas käsk ebaõnnestus

Asukohafailide skriptimise aspekt, mida IT-kasutajad või programmeerijad kasutavad liiga vähe vigade kontrollimine.

Seal hõljub palju pakkimistöid, mis täidavad kriitilisi IT-ülesandeid, näiteks oluliste failide varundamine või failide kopeerimise toimingud. Kui need pakkimistööd ebaõnnestuvad, tõrkuvad süsteemid ja inimesed märkavad.

Märksa nutikam on saada hoiatust, kui teie pakkimistöö ebaõnnestub enne inimesed hakkavad märkama. Nii saate probleemi ennetavalt lahendada.

Selleks saate kasutada muutujat% errorlevel%, mille enamik rakendusi ja käske pärast nende käivitamist tagastab.

Kõik, mida peate tegema, on käsu IF% ERRORLEVEL% käsu järgimine. Kui rakendus või käsk tagas nulli, on kõik korras. Kui ei, siis peate endale e-kirja saatma.

@echo välja lülitatud. xcopy C: \ somefolder E: \ backupfolder. KUI% ERRORLEVEL% NEQ 0 

Te ei pea e-posti teel marsruuti minema. Alati võite kirjutada tõrkelogi, mida võiksite igal hommikul kontrollida, või käivitada teise rakenduse või käsu, mis proovib kopeerida, kasutades alternatiivset käsku. Ükskõik, mida soovite teha, IF% ERRORLEVEL% lubab teil seda teha.

Kui eelistaksite konkreetsete veakoodide kontrollimiseks kasutada IF-avaldust, pakub Windows seda ulatuslik veakoodide loetelu.

5. Kontrollige, kas puuduvad parameetrid

Viimane kasulik IF-lause ei ole konkreetne käsk, vaid selle kontrollimine skripti olemasolu eest saanud sobivad sisendparameetrid.

Oletagem, et olete näiteks kirjutanud skripti, mis täidab sisendkaustast käsku xcopy, meeskonna kasutatavasse ühisesse võrgukausta. Kasutaja peab lihtsalt järgima teie skripti nime parameetritega, mis määravad nende isikliku faili tee.

Ilmselt ei saa te skripti õigesti käivitada ilma täpsustatud teeta, nii et võite sisestada IF-lause skripti algusesse, et veenduda mõlema parameetri sisestamises.

Nii see välja näeb.

@echo välja lülitatud. KUI [% 1] == [] ( GOTO alamteade. ) ELSE ( xcopy% 1 E: \ varukaust. ) GOTO eof.: alamteade. kaja Unustasid oma tee täpsustada.: eof.

Kui te pole kunagi varem parameetreid koos skriptskriptidega kasutanud, tähistab protsendi sümbol, millele järgneb arv, parameetri muutujat. % 1 on esimene parameeter,% 2 on teine ​​ja nii edasi.

Partiitööd võivad olla võimsad

Paljud inimesed hakkavad pakkimistöid kasutama lihtsate toimingute jaoks, mida tuleb täita järjestikku. IF-avaldustega on skriptidesse võimalik lisada palju rohkem intelligentsust.

Muidugi, kui soovite seda tõesti järk-järgult tõsta, võiksite kaaluda VBA-d meie juhendi abil oma esimese VBA rakenduse loominevõi võib-olla isegi õppige Pythoni programmeerimist.

Saate sageli kasutada selliseid keerukamaid programmeerimiskeeli, nagu näiteks õppige kasutama PowerShelli 5 põhjust, miks peaksite partii skriptimise asemel kasutama PowerShelliPowerShell on see, mida saaksite, kui ületaksite käsuviiba pakkskriptimisega, heidaksite sisse mõned lisafunktsioonid ja lööksite selle kõik mitu sälku. Siin on mitu põhjust, miks peaksite seda proovima. Loe rohkem , paljude samade toimingute täitmiseks, mille jaoks praegu paketitöid kasutate.

Ryanil on bakalaureuse kraad elektrotehnika alal. Ta on töötanud 13 aastat automatiseerimise alal, 5 aastat IT alal ja on nüüd rakenduste insener. MakeUseOfi endine tegevtoimetaja, ta on rääkinud andmete visualiseerimise riiklikel konverentsidel ja teda on kajastatud üleriigilises televisioonis ja raadios.