5 Instrucțiuni IF de utilizat pentru scripturi Windows mai inteligente în loturi

5 Instrucțiuni IF de utilizat pentru scripturi Windows mai inteligente în loturi

Dacă faceți o mulțime de muncă în fișiere batch Windows, Declarație IF oferă o modalitate foarte puternică de a adăuga flexibilitate scripturilor.



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

Dacă sunteți gata să începeți scriptul, să începem!





1. Comparați valorile

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

De exemplu, să presupunem că ați dorit să scrieți un script batch care să verifice zilnic dimensiunea hard diskului computerului. Dacă este sub 3 GB, doriți să primiți un raport prin e-mail care să spună „Spațiu pe hard disk prea mic”.



Pentru a crea un script care compară spațiul curent liber pe hard disk cu limita dvs., ar trebui să creați următorul script batch și să îl salvați ca fișier .bat.

@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 este componenta Windows Management Instrumentation din Windows care vine cu un sortiment de comenzi pe care le puteți utiliza pentru a extrage informații despre computer. Acesta este modul în care comanda „wmic” din acest script numește spațiul „logicdisk” și îl plasează în variabila FreeSpace. Acum puteți înlocui linia „Echo Nu este suficient spațiu liber” cu o comandă de e-mail simplă pentru a vă trimite o alertă.

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

Dacă nu ați mai folosit blat până acum, avem un articol care vă arată cum să configurați blat. Nu sunteți familiarizați cu configurarea locurilor de muncă programate? Vă oferim un articol despre cum să configurați activitățile programate Windows.

2. Comparații de șiruri

O altă comparație valoroasă de IF pe care o puteți face într-un job lot este comparând șirurile .

În exemplul următor veți vedea cum să verificați versiunea Windows utilizând o lucrare batch. Apoi, puteți compara acest lucru cu versiunea dvs. Windows așteptată.

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 actual este cel mai recent sau dacă are nevoie de un upgrade.

Iată cum arată acest script.

@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.

Iată cum arată rezultatul acestui script.

Abilitatea de a compara șirurile î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âte statistici despre computer puteți monitoriza. Puteți utiliza lucrări de lot programate pentru a alerta cu privire la acestea.

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

O altă situație utilă în care se află o instrucțiune IF într-un fișier batch verificați existența unui fișier de date .

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

Apoi, lucrarea lot poate copia fișierul respectiv într-o altă locație unde poate fi procesat sau poate lansa un script Windows care procesează fișierul într-o ieșire Excel.

(Am scris în trecut despre cum să utilizați scripturi Windows pentru prelucrarea datelor într-un fișier Excel ; o lectură bună de fundal.)

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

@echo off
if exist c: empdatafile.txt (
%WINDIR%SysWOW64cmd.exe
cscript LoadToExcel.vbs
) else (
rem file doesn't 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ă jurnale de erori noi într-un anumit folder atunci când există o problemă, puteți rula o lucrare în serie periodic pentru a monitoriza dacă sunt create jurnale de erori noi, astfel încât să puteți trimite o alertă.

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

Un aspect al scripturilor de fișiere batch pe care prea puțini oameni IT sau programatori îl folosesc este verificarea erorilor .

Există o mulțime de lucrări în lot care plutesc acolo, care efectuează sarcini IT critice, cum ar fi copierea de rezervă a fișierelor importante sau executarea operațiilor de copiere a fișierelor. Când aceste lucrări în serie eșuează, sistemele eșuează și oamenii observă.

Este mult mai inteligent să primiți o alertă atunci când lucrarea dvs. în lot a eșuat la 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 majoritatea aplicațiilor și comenzilor o returnează după ce sunt rulate.

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:
omefolder E:ackupfolder
IF %ERRORLEVEL% NEQ 0

Nu trebuie să luați ruta de e-mail. Puteți scrie întotdeauna un jurnal de erori pe care l-ați putea verifica în fiecare dimineață sau puteți lansa oa doua aplicație sau comandă care încearcă să facă copierea utilizând o comandă alternativă. Indiferent de acțiunea pe care doriți să o întreprindeți, DACĂ% ERRORLEVEL% vă permite să o faceți.

Dacă preferați să utilizați o instrucțiune IF pentru a verifica codurile de eroare specifice, Windows oferă un aspect destul de bun o listă extinsă de coduri de eroare .

5. Verificați dacă lipsesc parametrii

Ultima instrucțiune IF utilă nu este o comandă specifică, ci în schimb pentru a verifica dacă scriptul a primit parametrii de intrare corespunzători .

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

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

Iată cum arată asta.

@echo off
IF [%1]==[] (
GOTO sub_message
) ELSE (
xcopy %1 E:ackupfolder
)
GOTO eof
:sub_message
echo You forgot to specify your path.
:eof

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

Lucrările în serie pot fi puternice

Mulți oameni încep să folosească joburi batch pentru sarcini simple care trebuie executate în ordine. Cu declarațiile IF este posibil să adăugați mult mai multă inteligență scripturilor dvs.

Desigur, dacă doriți cu adevărat să o intensificați, puteți lua în considerare VBA cu ghidul nostru crearea primei aplicații VBA , sau poate chiar învăța programarea Python.

Puteți folosi adesea limbaje de programare mai avansate ca acestea sau puteți învăța să utilizați PowerShell, pentru a îndeplini multe dintre aceleași sarcini pentru care utilizați în prezent lucrări de lot.

Acțiune Acțiune Tweet E-mail Ștergeți aceste fișiere și foldere Windows pentru a elibera spațiu pe disc

Aveți nevoie să goliți spațiul pe disc pe computerul dvs. Windows? Iată fișierele și folderele Windows care pot fi șterse în siguranță pentru a elibera spațiu pe disc.

Citiți în continuare
Subiecte asemănătoare
  • Windows
  • Programare
  • Windows
Despre autor Ryan Dube(942 articole publicate)

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

nu găsesc editorul de politici de grup Windows 10
Mai multe de la Ryan Dube

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Faceți clic aici pentru a vă abona