Publicitate

Dacă lucrați mult în fișierele de loturi Windows, Declarație IF oferă un mod foarte puternic de a adăuga flexibilitate scripturilor dvs.

În acest articol, veți afla despre cele cinci tipuri principale de declarații IF pe care le puteți utiliza într-un fișier de lot Windows, cum arată sintaxa corectă și un exemplu realist pentru fiecare.

Dacă sunteți gata să începeți scripturile, începeți!

1. Comparați valorile

Unul dintre elementele de bază pe care trebuie să le faci de obicei într-un script de lot este comparați două valori și urmează un alt curs de acțiune în funcție de comparație.

De exemplu, să zicem că ai vrut să scrii un script de lot care verifică zilnic dimensiunea hard disk-ului computerului tău. Dacă este sub 3 GB, doriți să primiți un raport pe e-mail care să spună „Spațiu pe hard disk prea scăzut”.

Pentru a crea un script care compară spațiul curent pe hard disk cu limita dvs., nu ați creat următorul script de lot și l-ați salva ca fișier .bat.

@echo off. set DriveLimit = 300000000. for / f "usebackq delims == token = 2" %% x in (`wmic logicdisk unde" DeviceID = 'C:' "obține FreeSpace / format: value`) face set FreeSpace = %% x. Echo FreeSpace = "% FreeSpace%" Echo Limit = "% DriveLimit%" Dacă% FreeSpace% GTR% DriveLimit% (Ecou Există suficient spațiu liber. ) altceva (Ecou Nu este suficient spațiu liber. )
instagram viewer

WMIC este componenta Windows Management Instrumentation din Windows care vine cu un sortiment de comenzi pe care le puteți utiliza pentru a trage informații despre PC. Așa se face că comanda „wmic” din acest script numește spațiul „logicdisk” și îl plasează în variabila FreeSpace. Acum puteți înlocui doar linia „Echo Nu este suficient spațiu liber” cu o comandă e-mail neplăcută pentru a vă trimite o alertă.

În cele din urmă, setați acest script ca o lucrare de pachet programată Windows care se execută zilnic.

Dacă nu ați folosit niciodată blat înainte, avem un articol care vă arată cum să înființez blat. Nu sunteți familiarizat cu configurarea de locuri de muncă programate? Te-am acoperit cu un articol pe modul de configurare a activităților programate Windows 4 Sarcini plictisitoare pe care le puteți automatiza cu programatorul de activități WindowsTimpul dvs. este prea valoros pentru a fi irosit cu sarcini repetitive. Să vă arătăm cum să automatizăm și să programăm sarcinile. Avem și câteva exemple grozave. Citeste mai mult .

2. Comparații cu șiruri

O altă comparație de valoare IF pe care o puteți face într-o muncă de lot este compararea șirurilor.

În exemplul următor, veți vedea cum să verificați versiunea Windows folosind o lucrare de lot. Apoi puteți compara acest lucru cu versiunea estimată de Windows.

Unele utilizări ale acestui script ar fi pentru audituri IT atunci când trebuie să rulați rapid un script și să vă asigurați că sistemul de operare curent este cel mai recent sau dacă are nevoie de un upgrade.

Iată cum arată acest script.

@echo off. pentru / f "jetoane = 4-5 delims =. "%% i în ('ver') setează VERSIUNEA = %% i. %% j. dacă "% version%" == "6.0" ecou Windows Vista. dacă "% version%" == "6.1" ecou Windows 7. dacă "% version%" == "6.2" ecou Windows 8. dacă "% version%" == "6.3" ecou Windows 8.1. dacă "% version%" == "10.0" ecou Windows 10. 

Iată cum arată rezultatele acestui script.

Fișier lot, Windows, programare

Posibilitatea de a compara șiruri în lot deschide o listă întreagă de posibilități. Dacă explorați toate informații pe care le puteți obține dintr-o comandă WMIC veți vedea cât de multe statistici despre computer puteți monitoriza. Puteți utiliza joburi programate pentru loturi pentru a alerta cu privire la acestea.

3. Verificați dacă există un fișier

O altă situație utilă în care o instrucțiune IF dintr-un fișier de lot este aceea de verificați existența unui fișier de date.

De multe ori lucrarea de lot este doar un instrument de monitorizare care ar putea fi programat să verifice dacă există noi fișiere de date primite într-un anumit director.

Apoi, lucrarea de lot poate fie să copieze fișierul într-o altă locație unde poate fi procesată, fie să dea startul unui script Windows care procesează fișierul într-o ieșire Excel.

(Am scris în trecut despre cum trebuie utilizați scripturi Windows pentru procesarea datelor într-un fișier Excel 5 scripturi VB Windows utile pentru automatizarea utilizării computeruluiDe la monitorizarea site-urilor web până la rapoartele sistemului, aflați cum să automatizați toate lucrurile cu aceste scripturi VB uimitoare pe care le puteți codifica în Windows chiar acum. Citeste mai mult ; unele lecturi de fundal bune.)

Utilizarea unui fișier de lot pentru a verifica dacă un fișier există într-un director este rapid și ușor. Iată cum arată acest script.

@echo off. dacă există c: \ temp \ datafile.txt (% WINDIR% \ SysWOW64 \ cmd.exe cscript LoadToExcel.vbs. ) altceva (fișierul rem nu există. )

Comparația IF EXISTS este utilă pentru o mulțime de lucruri.

De exemplu, dacă aveți un sistem sau o aplicație care rulează care creează jurnalele de eroare noi într-un folder specific atunci când există o problemă, puteți rula de fiecare dată o lucrare de lot, pentru a monitoriza dacă sunt create jurnalele de eroare noi, astfel încât să puteți trimite un alerta.

4. Verificați dacă o comandă a eșuat

Un aspect al scripturilor de fișiere de lot pe care le folosesc prea puțini oameni sau programatori IT verificarea erorilor.

Există o mulțime de locuri de muncă care plutesc pe acolo, care efectuează sarcini IT importante, cum ar fi backup-ul fișierelor importante sau executarea operațiunilor de copiere a fișierelor. Când aceste locuri de muncă eșuează, sistemele eșuează și oamenii observă.

Este mult mai inteligent să primiți o alertă atunci când munca dvs. de lot a eșuat o comandă inainte de oamenii încep să observe. În acest fel puteți remedia problema în mod proactiv.

Puteți face acest lucru utilizând variabila% errorlevel% pe care o returnează majoritatea aplicațiilor și comenzilor după ce sunt executate.

Tot ce trebuie să faceți este să vă urmați comanda prin comanda IF% ERRORLEVEL%. Dacă aplicația sau comanda a returnat un zero, totul este în regulă. Dacă nu, atunci trebuie să vă trimiteți un e-mail.

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

Nu trebuie să luați ruta prin e-mail. Puteți scrie întotdeauna un jurnal de erori pe care îl puteți verifica în fiecare dimineață sau puteți lansa o a doua aplicație sau o comandă care încearcă să facă copia folosind o altă comandă. Indiferent de acțiunea pe care doriți să o întreprindeți, DACĂ% ERRORLEVEL% vă permite să faceți acest lucru.

Dacă utilizați mai degrabă o declarație IF pentru a verifica coduri de eroare specifice, Windows oferă o imagine destul de bună listă extinsă de coduri de eroare.

5. Verificați dacă lipsesc parametrii

Ultima declarație utilă IF nu este o comandă specifică, ci în schimb verifică scriptul a primit parametrii de intrare corespunzători.

De exemplu, să zicem că ați scris un script care execută o comandă xcopy dintr-un folder de intrare, într-un folder comun de rețea folosit de o echipă. Utilizatorul trebuie doar să urmeze numele scriptului cu parametrii care definesc calea personală a fișierului.

Evident, nu puteți executa corect scriptul dvs. fără calea specificată, așadar puteți pune o declarație IF la începutul scriptului pentru a vă asigura că ambii parametri au fost introduși.

Iată cum arată asta.

@echo off. IF [% 1] == [] ( Sub_message GOTO. ) ELSE ( xcopy% 1 E: \ backupfolder. ) GOTO eof.: Sub_message. ecou Ai uitat să specifici calea ta.: EOF.

Dacă nu ați folosit niciodată parametri cu scripturi de lot înainte, simbolul procentual urmat de un număr reprezintă variabila de parametru. % 1 este primul parametru,% 2 este al doilea și așa mai departe.

Locurile de muncă pot fi puternice

Multe persoane încep să folosească joburi batch pentru sarcini simple care trebuie executate în succesiune. Cu declarațiile IF, este posibil să adăugați mult mai multe informații scripturilor dvs.

Bineînțeles, dacă doriți cu adevărat să creșteți o notă, puteți lua în considerare să aruncați o privire la VBA cu ghidul nostru pe crearea primei dvs. aplicații VBA, sau poate chiar învățați programarea Python.

De multe ori puteți utiliza limbaje de programare mai avansate ca acestea sau învață să folosești PowerShell 5 motive pentru care ar trebui să utilizați PowerShell în loc de scripturi pe lotPowerShell este ceea ce veți obține dacă ați trece promptul de comandă cu Scripturi de lot, ați aruncat câteva funcții suplimentare și l-a dat cu piciorul în mai multe crestături. Iată câteva motive pentru care ar trebui să o încercați. Citeste mai mult , pentru a îndeplini multe dintre aceleași sarcini pentru care utilizați în prezent joburi batch.

Ryan are o diplomă de licență în inginerie electrică. A lucrat 13 ani în domeniul ingineriei automatizării, 5 ani la IT, iar acum este inginer pentru aplicații. Fost redactor manager al MakeUseOf, a vorbit la conferințe naționale despre vizualizarea datelor și a fost prezentat la TV și radio naționale.