Fișier cu extensia bat. Crearea unui fișier BAT

Fișierele batch sau batch sunt fișiere text obișnuite care conțin seturi de comenzi de interpret și au extensia bat sau cmd (cmd funcționează numai în sistemele de operare din familia NT). Puteți edita astfel de fișiere folosind notepad sau orice alt editor de text.

Deschideți Notepad și introduceți următoarele două rânduri:

@echo Acest fișier batch
@pauză

Acest fișier batch
Apăsați orice tastă pentru a continua...

După apăsarea oricărei taste, fereastra se va închide, deoarece fișierul bat este finalizat.
Vă rugăm să rețineți că simbolul câinelui înainte de fiecare comandă din fișierul bat indică faptul că comanda în sine nu trebuie să fie afișată pe ecran, ci doar rezultatul funcționării acesteia ar trebui să fie afișat. Pentru a experimenta, eliminați caracterul câine de la începutul fiecărei linii, salvați și rulați fișierul bat rezultat.

Comenzi folosite în fișierele bat

Lista comenzilor care pot fi folosite în fișierele bat poate fi vizualizată introducând comanda în linia de comandă (Start - Run - cmd pentru familia Windows NT sau Start - Run - comandă pentru linia 9x)

Rezultatul ajutorului este o listă de comenzi disponibile cu scurte explicații pentru acestea. Pentru a obține informații mai detaliate despre comanda care vă interesează, introduceți ajutor nume_comandă la linia de comandă. De exemplu, pentru a obține ajutor detaliat cu privire la comutatoarele de comandă AT, rulați următoarea comandă:

Ca rezultat, pe ecran va fi afișată o listă de taste pentru rularea comenzii AT din fișierul bat.
Dacă fișierul bat este executat sub Windows (nu DOS pur), atunci puteți rula orice aplicație sau puteți deschide fișiere din acesta. De exemplu, trebuie să deschideți automat fișierul jurnal al fișierului bat când își încheie activitatea. Pentru a face acest lucru, includeți următoarea comandă în fișierul bat ca ultima linie:

porniți filename.txt

Rezultatul executării acestei comenzi va fi deschiderea fișierului nume_fișier.txt, iar fișierul bat în sine își va finaliza munca. Această metodă este bună dacă fișierul jurnal este mic, altfel Notepad va refuza să-l deschidă, sugerând să utilizați WordPad. Dar și această problemă poate fi rezolvată, așa cum va fi arătat în exemplele ulterioare.

Cum să automatizezi lansarea fișierelor bat

Foarte des este necesar să se automatizeze lansarea fișierelor bat pentru a efectua operațiuni de rutină. Pentru a rula fișiere bat într-un program, Scheduler inclus în pachetul standard Windows este cel mai potrivit. Cu acest ajutor, puteți configura foarte flexibil lansarea unui fișier batch în anumite zile sau ore, cu un anumit interval. Puteți crea mai multe programe etc.

Pentru a lansa fișiere batch la nivel local, puteți utiliza soluții de la terți; din fericire, există o mulțime de alternative plătite și gratuite la Scheduler standard.

Fișierele batch pot fi utilizate și ca scripturi de conectare în domenii. Când sunt utilizate în acest mod, acestea vor fi executate de fiecare dată când utilizatorul se conectează în rețea, indiferent de dorința acestuia. Cu ajutorul lor, puteți automatiza colectarea de informații despre mașinile sau software-ul instalat pe computerele utilizatorilor, puteți modifica forțat setările Windows, puteți instala software fără ca utilizatorul să observe și să automatizați soluționarea altor sarcini care ar dura mult timp pentru a fi efectuate manual.

Cum se creează un fișier cu un nume arbitrar dintr-un fișier bat

Un simbol de redirecționare este utilizat pentru a crea un fișier în timp ce un fișier batch rulează. Arata cam asa:
>
Acestea. pentru a crea un fișier trebuie să redirecționați fluxul de pe ecran către fișier. Acest lucru se poate face folosind următoarea comandă:

@echo Fișier de pornire>C:\1.txt

După executarea acestei comenzi, un fișier text cu linia Start fișier va fi creat în rădăcina unității C.
Când creați un fișier, puteți utiliza variabile de sistem sau părți ale acestora în numele acestuia. De exemplu, puteți crea un fișier de raport despre funcționarea unui fișier bat cu un nume egal cu data la care a fost lansat fișierul bat. Pentru a face acest lucru, puteți utiliza următoarele linii din fișierul bat.

set datetemp=%date:~-10%
@echo .>%SYSTEMDRIVE%\%DATETEMP%.txt

Aceste două rânduri funcționează așa. Mai întâi, creăm o variabilă datetemp în memorie, căreia îi atribuim 10 caractere de la dreapta la stânga din variabila de sistem DATE. Astfel, acum variabila temporară datetemp conține doar data curentă. Cu următoarea linie, redirecționăm rezultatul simbolului punct către un fișier, al cărui nume este preluat din variabila datetemp, iar extensia txt este specificată în mod explicit. Fișierul va fi creat pe discul de sistem al computerului unde este executat fișierul bat.

Când un administrator colectează informații despre computerele din rețea, va fi mai convenabil să adăugați numele computerului la numele fișierului. Acest lucru se poate face cu ușurință folosind următoarea comandă:

@echo .>C:\FolderName\%COMPUTERNAME%.txt

Această comandă, în timp ce execută un fișier batch, va crea un fișier text pe unitatea C cu numele computerului pe care rulează fișierul batch.
Pentru a crea un fișier cu un nume specific, puteți utiliza orice variabilă de sistem sau puteți crea propriul fișier pe baza variabilelor de sistem și/sau a altor date.

Cum se creează un folder dintr-un fișier bat

Pentru a crea un folder, utilizați comanda MKDIR sau MD echivalentul său scurtat. Pentru a crea un folder dintr-un fișier bat, trebuie să utilizați următoarea comandă:

După executarea acestei comenzi, va fi creat un folder FolderName în folderul din care a fost lansat fișierul bat. Pentru a crea un fișier într-o altă locație decât cea în care ați început fișierul bat, de exemplu în rădăcina unității D, utilizați o indicație explicită a locației noului folder. Comanda va arăta astfel:

MD D:\FolderName

Când creați foldere, puteți utiliza variabile de sistem. De exemplu, puteți crea un folder în rădăcina unității D cu numele utilizatorului curent. Pentru a face acest lucru, veți avea nevoie de variabila %USERNAME%, iar comanda va arăta astfel:

MD D:\%USERNAME%

Puteți complica și mai mult comanda și puteți crea un folder cu numele utilizatorului actual pe unitatea de sistem a computerului său. Comanda pentru aceasta ar arăta astfel:

MD %SYSTEMDRIVE%\%USERNAME%

Când creați foldere sau fișiere, puteți utiliza orice variabile de sistem sau părți ale acestora. Următorul exemplu demonstrează crearea unui folder pe unitatea de sistem a computerului utilizatorului cu un nume egal cu data curentă.

set datetemp=%date:~-10%
MD %SYSTEMDRIVE%\%datetemp%

Acest design funcționează după cum urmează.
Prima comandă creează o variabilă datetemp în memorie, care va fi distrusă când fișierul bat se termină de rulat. Până când fișierul bat și-a terminat activitatea, este posibil să se opereze cu valoarea acestei variabile. Variabilei datetemp îi sunt alocate 10 caractere de la dreapta la stânga variabilei de sistem DATE, adică. de la data curentă. Variabila DATE are formatul Ziua ZZ.LL.AAAA. Primele caractere din stânga sunt numele zilei săptămânii, așa că le renunțăm și atribuim doar data curentă variabilei temporare datetemp.
Acest lucru nu limitează lista de posibilități atunci când creați foldere. Puteți manipula variabilele așa cum doriți, creând foldere cu nume unice, ușor de citit. Puteți obține o listă cu toate variabilele folosind comanda SET.

Cum să redirecționați rezultatul execuției comenzii către un fișier

Adesea, atunci când executați un fișier bat complex în modul automat, verificarea rezultatelor muncii acestuia poate fi dificilă din mai multe motive. Prin urmare, este mai ușor să scrieți rezultatele comenzilor fișierelor batch într-un fișier text (fișier jurnal). și apoi analizați funcționarea corectă a fișierului bat folosind acest jurnal.
Redirecționarea rezultatului comenzilor fișierului bat către un fișier jurnal este destul de simplă. Următoarele vor arăta cum se poate face acest lucru.
Creați un fișier bat cu următorul conținut (copiați aceste linii în Notepad și salvați fișierul cu extensia bat):

@echo dezactivat
echo Start %time%
echo Creați test.txt
echo test>C:\test.txt
echo Copiați Test.txt în Old_test.txt
copiați C:\test.txt C:\Old_test.txt
echo Stop %time%

Prima linie dezactivează ieșirea comenzilor în sine. Astfel, doar rezultatele executării lor vor fi scrise în fișierul jurnal.
A doua linie scrie în fișierul jurnal ora de începere a fișierului batch.
A treia linie scrie în fișierul jurnal o explicație că următoarea comandă va crea un fișier test.txt
Comanda din a patra linie creează un fișier test.txt de la rădăcina unității C. Fișierul este creat, de exemplu. Această comandă scrie cuvântul test în fișierul C:\test.txt
A cincea linie imprimă în fișierul jurnal o explicație că următoarea comandă copiază un fișier dintr-o locație în alta.
Comanda din a șasea linie copiază fișierul creat C:\test.txt în fișierul C:\Old_test.txt, adică. o copie a fișierului este creată sub un nou nume.
Ultima, a șaptea linie conține o comandă pentru a afișa timpul de finalizare a fișierului batch. Împreună cu înregistrarea orei de începere a fișierului batch în fișierul jurnal, aceste două valori de timp fac posibilă estimarea timpului de rulare a fișierului batch.

Salvați acest fișier batch cu un nume precum 1.bat
Să presupunem că am dori să stocăm un raport despre funcționarea unui fișier batch într-un folder separat și să scriem un raport în fiecare zi cu un nume de fișier nou, astfel încât să putem accesa jurnalele pentru zilele anterioare în orice zi. Mai mult, aș dori să am numele fișierului jurnal sub forma datei de funcționare a fișierului batch. Pentru a implementa toate acestea, să creăm un folder pe unitatea C (de exemplu) numit LOG, adică. calea completă către acesta va arăta ca C:\LOG. Vom rula fișierul batch creat 1.bat cu următoarea comandă:

1.bat>C:\LOG\%date~-10%.txt

Dacă fișierul batch va fi lansat din Scheduler, atunci trebuie să specificați calea completă către fișierul bat. Rețineți că, dacă există spații în cale, trebuie să utilizați fie ghilimele, fie formatul 8.3. Adică, dacă calea către fișierul bat este C:\Program Files\1.bat, de exemplu, atunci în linia de comandă Scheduler pentru a rula fișierul bat, trebuie să specificați una dintre următoarele linii:

„C:\Program Files\1.bat”>C:\LOG\%date~-10%.txt
C:\Progra~1\1.bat>C:\LOG\%date~-10%.txt

După rularea fișierului 1.bat, va fi creat un fișier în folderul C:\LOG cu un nume egal cu data la care a fost lansat fișierul bat, de exemplu, 13/01/2004.txt Acesta va fi un raport privind funcționarea fișierului batch 1.bat
Rularea fișierului bat, al cărui exemplu este afișat în prima listă din partea de sus a paginii, folosind comanda de mai sus, va duce la crearea unui fișier jurnal cu următorul conținut:

Începe 19:03:27.20
Creați test.txt
Copiați Test.txt în Old_test.txt
Fișiere copiate: 1.
Oprire 19:03:27.21

Astfel, pentru a redirecționa rezultatele unui fișier bat către un fișier jurnal, trebuie să utilizați simbolul de redirecționare > Sintaxa este următoarea:

Path\FileName.bat>Path\LogFileName.txt

Extensia fișierului jurnal poate fi orice. Dacă se dorește, un raport despre execuția unui job batch poate fi chiar formatat ca o pagină html (etichetele corespunzătoare pot fi trimise într-un fișier jurnal în același mod în care comentariile au fost scoase în exemplul 1.bat) și copiate într-o companie. Server.

Cum să răspunzi automat la o solicitare de confirmare

Unele comenzi necesită confirmarea unei acțiuni potențial periculoase atunci când sunt executate. De exemplu, comenzi precum format sau del vor cere mai întâi confirmarea înainte de execuția ulterioară. Dacă una dintre aceste comenzi este executată într-un fișier batch, atunci promptul de confirmare va opri executarea fișierului batch și va aștepta ca utilizatorul să selecteze una dintre opțiunile date. Mai mult, dacă rezultatul executării unui fișier batch este redirecționat către un fișier jurnal, atunci utilizatorul nu va vedea o solicitare de confirmare și fișierul batch va apărea înghețat.

Pentru a corecta astfel de probleme, puteți redirecționa răspunsul dorit la comandă. Acestea. efectuați acțiunea inversă pentru a redirecționa ieșirea comenzii către un fișier.
Să ne uităm la un exemplu despre cum arată o solicitare de confirmare a unei acțiuni potențial periculoase. Să creăm, de exemplu, un folder Folder pe unitatea C. Să creăm sau să copiem oricare două fișiere în el. Apoi, deschideți linia de comandă și executați următoarea comandă:

Această comandă ar trebui să elimine toate fișierele din folderul specificat. Dar mai întâi vi se va solicita să confirmați următorul conținut:

C:\Folder\*, Continuați?

Executarea comenzii se va opri până când este apăsată tasta Y sau tasta N. Când executați un fișier batch în modul automat, execuția acestuia se va opri.
Pentru a evita acest lucru, folosim redirecționarea. Redirecționarea se realizează folosind simbolul
Linia verticală indică faptul că în loc să fie afișat simbolul pe ecran, acesta ar trebui să fie „dat” comenzii care urmează simbolului. Să verificăm redirecționarea. Rulați următoarea comandă la linia de comandă:

echo Y|del C:\Folder

Ecranul va afișa o solicitare de confirmare a ștergerii tuturor fișierelor din folderul Folder, dar cu un răspuns pozitiv (Y). Toate fișierele din folderul Folder vor fi șterse.
Fii atent cu această comandă.

Cum să dezactivați comenzile afișate la executarea unui fișier batch

La executarea unui fișier batch, pe lângă rezultatele comenzii, sunt afișate și comenzile în sine. Puteți folosi simbolul @ pentru a suprima ieșirea comenzii.
Pentru a evita tipărirea unei comenzi pe ecran, puteți pune un semn @ la începutul comenzii.

Această comandă va afișa comanda echo Testing, iar pe linia următoare - rezultatul funcționării sale, cuvântul Testing.

Această comandă va afișa doar rezultatul comenzii, adică. cuvântul Testare. Comanda în sine nu va fi scoasă.
Dacă nu trebuie să afișați comenzi pe ecran pe parcursul execuției întregului fișier, atunci este mai ușor să scrieți următoarea comandă ca primă linie în fișierul batch:

Această comandă va dezactiva ieșirea comenzii pe ecran pe durata întregului fișier batch. Pentru a preveni imprimarea comenzii în sine, aceasta începe cu simbolul @.

Cum să rulați altul dintr-un fișier bat

Uneori, în timpul executării unui fișier batch, devine necesar să rulați un alt fișier batch. Mai mult, în unele cazuri, execuția fișierului batch principal trebuie să fie suspendată în timp ce fișierul auxiliar este executat, iar în altele, fișierul auxiliar trebuie să ruleze în paralel cu cel principal.
De exemplu, să creăm două fișiere bat. Unul numit 1.bat și care conține o singură comandă

Al doilea se numește 2.bat și conține, de asemenea, o comandă

Acum haideți să rulăm fișierul 1.bat Se va deschide o fereastră în care vi se va cere să apăsați orice tastă pentru a continua, după ce apăsați fereastra se va închide. Astfel, apelarea unui fișier batch la altul folosind comanda de apel oprește execuția fișierului batch până când fișierul batch apelat de comanda de apel finalizează execuția.

Într-un alt caz, trebuie să lansați fie o aplicație, fie un alt fișier batch dintr-un fișier bat, fără a întrerupe execuția fișierului batch principal. Acest lucru trebuie făcut adesea, de exemplu, prin deschiderea forțată a jurnalului unui fișier batch programat pentru noapte, astfel încât dimineața utilizatorul să poată verifica corectitudinea execuției acestuia. Pentru a face acest lucru, folosiți comanda start. Să corectăm linia din fișierul 1.bat la

și rulați fișierul 1.bat Acum s-a deschis o fereastră în care trebuie să apăsați orice buton pentru a continua, iar fereastra fișierului batch principal (1.bat) s-a închis.
Astfel, pentru a apela altul dintr-un fișier batch, fără a opri primul fișier batch, trebuie să utilizați comanda de pornire.
Comenzile de pornire și apel discutate mai sus pot fi folosite nu numai pentru a lansa alte fișiere batch, ci și pentru a lansa orice aplicații sau fișiere deschise.
De exemplu, comanda start log.txt din corpul unui fișier batch va deschide fișierul log.txt în Notepad fără a opri fișierul batch.

Cum se trimite un mesaj dintr-un fișier bat

Atunci când un fișier batch este executat pe una dintre mașinile din rețea, este convenabil să informați administratorul că execuția lui s-a terminat folosind un mesaj trimis mașinii administratorului. Puteți face acest lucru incluzând comanda în fișierul batch

net trimite nume Textul mesajului

Unde nume este numele aparatului sau utilizatorului căruia îi este adresat mesajul, iar Textul mesajului este textul mesajului. După rularea acestei comenzi, va fi trimis un mesaj către numele de utilizator.
Vă rugăm să rețineți că atunci când utilizați chirilic în textul unui mesaj, textul trebuie introdus în codificare MS-DOS (pagina de cod 866). În caz contrar, mesajul va ajunge sub formă de caractere care nu pot fi citite. Puteți introduce text în codificarea DOS folosind orice editor de text care acceptă această codificare. Acesta ar putea fi, de exemplu, FAR. Deschideți un fișier batch pentru editare în FAR (F4) și apăsați butonul F8. Linia de sus a editorului ar trebui să indice codificarea DOS, iar în partea de jos, la sfatul cu instrumente despre tastele de comandă rapidă, tasta F8 ar trebui să aibă inscripția Win, indicând că codificarea curentă este DOS și pentru a comuta la codarea Win de care aveți nevoie pentru a apăsa F8.

Cum să automatizezi ștergerea fișierelor după tip

Pentru a șterge discul de fișiere temporare, puteți utiliza comanda

del /f /s /q C:\*.tmp

Unde
/f - șterge toate fișierele, chiar dacă au setat atributul numai pentru citire
/s - șterge fișierele din toate subdirectoarele
/q - dezactivează cererea de confirmare a ștergerii fișierului
C: este unitatea pe care vor fi găsite și șterse fișierele. Puteți specifica nu întregul disc, ci un folder, de exemplu, C:\WinNT
*.tmp - tip de fișiere care vor fi șterse

Aveți grijă la comutatorul /q și la tipurile de fișiere pe care le ștergeți. Comanda șterge fără a cere permisiunea și, dacă este specificat un tip de fișier greșit, poate șterge fișierele inutile.

Cum să schimbați adresa IP a unui computer dintr-un fișier batch

Adresa IP poate fi schimbată folosind comanda netsh.
Pentru a schimba corect adresa IP, mai întâi trebuie să aflați configurația curentă. Acest lucru se poate face pe linia de comandă folosind comanda

netsh interfață ip arată adresa

Rezultatul acestei comenzi este afișarea configurației curente a interfeței de rețea. Suntem interesați de numele interfeței. Să presupunem că se numește FASTNET.
Să presupunem că trebuie să schimbați adresa IP la 192.168.1.42, adresarea rețelei este statică, fără a utiliza DHCP, gateway-ul este 192.168.1.1, masca este 255.255.255.0. În acest caz, comanda care trebuie executată de la fișierul batch va arăta astfel:

netsh interfață ip set adresa nume="FASTNET" static 192.168.1.42 255.255.255.0 192.169.1.1 1

După executarea acestei comenzi, adresa IP a interfeței FASTNET se va schimba în 192.168.1.42.
Comanda netsh oferă capabilități extinse pentru gestionarea setărilor de rețea din linia de comandă. Pentru alte funcționalități, consultați ajutorul pentru utilizarea netsh /?

Cum să aflați numele computerului dintr-un fișier bat

Pentru a afla numele computerului atunci când executați un fișier bat (pentru a utiliza această valoare în viitor), utilizați comanda

Această comandă returnează numele computerului pe care rulează.

Cum să redenumiți fișierele prin mască dintr-un fișier batch

Uneori devine necesar să redenumiți toate fișierele dintr-un folder folosind un șablon dintr-un fișier batch. Acest lucru se poate face folosind următoarea comandă din fișierul bat:

pentru /f "tokens=*" %%a în ("dir /b PATH\*.*") faceți ren PATH\%%a Prefix%%a

În această linie, trebuie să înlocuiți PATH\ cu calea către fișierele care vor fi redenumite și Prefix cu acele caractere care vor fi adăugate la numele fișierului la redenumire.
Nu puneți fișierul batch în folderul în care are loc redenumirea, altfel va fi redenumit și el. Dacă există subdosare în folderul în care fișierele sunt redenumite, atunci va fi adăugat și un prefix la numele subdosarului, adică. subfolderele vor fi redenumite ca fișiere.
Dacă specificați o mască specifică pentru tipurile de fișiere care fac obiectul unei redenumiri, de exemplu, *.txt, și nu *.* ca în exemplu, atunci numai fișierele din tipurile specificate vor fi redenumite. Alte fișiere și foldere nu vor fi redenumite.

A doua varianta:
setați thePATH=C:\test
pentru %%I în (*.txt) faceți „%thePATH%\%%~nxI” „%%~nI.dat”
Cum se utilizează simbolul procentaj într-un fișier batch

Pentru a utiliza simbolul procentual (%) într-un fișier batch, trebuie să îl scrieți de două ori. De exemplu
ecou 50%%
Această comandă din fișierul bat va afișa 50%. Dacă utilizați comanda echo 50%, atunci doar numărul 50 va fi afișat pe ecran.
Luați în considerare această caracteristică atunci când utilizați simbolul % când scrieți fișiere batch.

Cum se exportă registry dintr-un fișier batch

regedit.exe -ea C:\environment.reg „HKEY_CURRENT_USER\Environment”

Această comandă, la executarea unui fișier batch, va arunca ramura HKEY_CURRENT_USER\Environment în fișierul C:\environment.reg Când trebuie să restaurați valorile parametrilor în HKEY_CURRENT_USER\Environment, va fi suficient să rulați mediu.reg fişier. Această comandă poate fi folosită pentru a face o copie de rezervă zilnică a software-ului și a setărilor de sistem care sunt stocate în registry.
Nu uitați că dacă există un spațiu în calea unde fișierul de ieșire ar trebui salvat sau în numele stupului de registry, acestea trebuie incluse între ghilimele.

Cum să importați valorile variabilelor de registry dintr-un fișier batch

Dacă este nevoie să importați valori variabile salvate anterior sau noi în registru dintr-un fișier batch, acest lucru se poate face folosind comanda

regedit.exe -s C:\environment.reg

Această comandă importă date din fișierul environment.reg în registru fără a solicita confirmare prin utilizarea comutatorului -s.

Cum să ocoliți verificarea datei dintr-un fișier bat

Unele software verifică data curentă a sistemului la pornire. Dacă data este mai mare decât cea stabilită de dezvoltator, atunci programul nu pornește. De exemplu, un dezvoltator crede că o versiune a unui program poate funcționa timp de o lună, iar apoi utilizatorul va trebui să instaleze o versiune actualizată a programului. Pe de o parte, aceasta este o preocupare pentru utilizator, care va avea la dispoziție cea mai recentă versiune a programului cu deficiențele eliminate în raport cu versiunile anterioare. Pe de altă parte, producătorul obligă utilizatorul să descarce o nouă versiune chiar dacă utilizatorul este complet mulțumit de versiunea programului pe care a instalat-o. Această problemă poate fi rezolvată cu ușurință folosind următorul fișier batch, care va rula programul, va aștepta să se finalizeze și va întoarce data la cea care era înainte de lansarea programului.

set tempdate=%date:~-10%
data 01-01-04
notepad.exe
data %tempdate%

În acest exemplu, data curentă a sistemului este mai întâi stocată într-o variabilă, apoi (în a doua linie) data sistemului este setată la 1 ianuarie 2004 și apoi este numit un program care verifică data sistemului. În acest exemplu este Notepad. Atâta timp cât Notepad este deschis, fișierul batch așteaptă fără a finaliza sau a seta data sistemului înapoi. Odată ce Notepad este închis, fișierul batch va continua să se execute și va seta data sistemului la valoarea stocată în variabila tempdate, de exemplu. la cel care a fost înainte de a rula fișierul batch.

Nu uitați că, dacă calea către fișierul care rulează programul conține spații, atunci aceasta (calea) trebuie inclusă între ghilimele. Dacă calea conține chirilice, atunci când scrieți un fișier batch trebuie să utilizați un editor de text care acceptă codificarea DOS (de exemplu, FAR). În caz contrar, atunci când rulați fișierul batch, va fi afișat un mesaj care spune că „fișierul specificat nu este o comandă internă sau externă...”.

Dacă un program verifică data curentă a sistemului numai când pornește și nu mai face acest lucru în timpul funcționării, atunci fișierul batch poate fi modificat prin adăugarea unei instrucțiuni de pornire înaintea numelui fișierului executabil al programului, de exemplu. exemplul nostru va arăta astfel:

set tempdate=%date:~-10%
data 01-01-04
porniți notepad.exe
data %tempdate%

În acest caz, fișierul batch va schimba data sistemului, va lansa programul și, fără a aștepta finalizarea acestuia, va întoarce data la cea care era înainte de lansarea programului.

Cum să așteptați ca un anumit fișier să apară într-un fișier bat

Uneori este necesar să efectuați o anumită acțiune atunci când un anumit fișier apare într-un folder. Pentru a organiza o verificare a aspectului unui fișier într-un folder, puteți utiliza următorul fișier batch

:Test
dacă există c:\1.txt mergeți
dormi 10
mergi la testare
:merge
blocnotes

Un astfel de fișier batch va verifica la intervale de 10 secunde prezența fișierului 1.txt în rădăcina unității C și când apare fișierul 1.txt, se va efectua acțiunea specificată după eticheta go, adică. acest exemplu va lansa Notepad.
Utilitarul Sleep este distribuit gratuit ca parte a setului de resurse. Îl poți descărca aici.
Dacă fișierul 1.txt este mare și este copiat de undeva, se poate întâmpla ca fișierul batch să verifice prezența acestuia în timp ce fișierul nu a fost încă copiat sau este ocupat cu o altă aplicație. În acest caz, încercarea de a efectua unele acțiuni cu fișierul 1.txt va avea ca rezultat o eroare. Pentru a preveni acest lucru, fișierul batch poate fi modificat după cum urmează

:Test
dacă există c:\1.txt mergeți
dormi 10
mergi la testare
:merge
redenumiți c:\1.txt 1.txt
dacă nu, nivelul de eroare 0 merge
del c:\1.txt

Când fișierul 1.txt nu a fost copiat complet pe unitatea C sau este ocupat de o altă aplicație, o încercare de a-l redenumi va cauza o eroare și ciclul va fi repetat până când fișierul este copiat complet sau este eliberat. După ce comanda redenumire c:\1.txt 1.txt este executată fără eroare (adică fișierul este liber), puteți efectua orice acțiuni cu acesta. În ultimul exemplu îl îndepărtează.

Cum să adăugați comentarii la un fișier bat

Când scrieți un fișier batch mare, este foarte util să adăugați comentarii la blocurile sale principale. Acest lucru va face ușor de înțeles ce fac aceste blocuri în timp.

Oricine poate scrie fișiere bat!

Procesor de comandă

Multe sisteme de operare, inclusiv cele dezvoltate de Microsoft, includ un procesor de comandă. Acesta este numele unui program care inițiază execuția diferitelor acțiuni ca răspuns la comenzile introduse de utilizator de la tastatură. Practic, aceste acțiuni constau în lansarea programelor necesare cu anumiți parametri. Dar nu numai; Vom vedea mai târziu că unele comenzi sunt executate direct de procesorul de comenzi. Practic, acestea sunt comenzile care servesc la controlul contextului și secvenței de execuție a comenzii. Cu toate acestea, nu ne vom gândi prea profund la natura comenzilor, cel puțin nu dacă este necesar. Mai important, orice program care este tehnic posibil de rulat din linia de comandă este considerat de procesorul de comandă ca o comandă. Nu face diferența între comenzile native care au fost inițial încorporate în sistemul de operare și programele care au fost instalate deasupra acestuia.

Pentru a porni procesorul de comenzi:

    Faceți clic pe butonul start. Meniul principal va fi afișat pe ecran.

    Selectați Run din meniul principal. Pe ecran va apărea o casetă de dialog Pornirea programului.

    În câmpul Open, introduceți șirul cmd.

    Faceți clic pe butonul Bine. Pe ecran va apărea o fereastră de procesor de comandă.

Linie de comandă și comenzi

Fereastra procesorului de comandă în forma sa originală arată sumbră, iar lucrul cu acesta nu este foarte convenabil pentru majoritatea oamenilor. Este mult mai ușor să utilizați managerii de fișiere în stil Norton Commander. Acestea oferă atât instrumente pentru navigarea rapidă în sistemul de fișiere, cât și sincronizarea pentru introducerea comenzilor.

Pentru a introduce comanda:

    Tastați textul comenzii în linia de comandă.

    Apăsați tasta introduce.

Procesorul de comenzi și comenzile sistemului de operare sunt descrise în documentația de operare pentru acesta din urmă. Această documentație este parțial conținută în sistemul de operare în sine. Pentru a-l accesa utilizați comanda Ajutor. Această comandă afișează o listă de comenzi disponibile. Pentru a obține o descriere a unei anumite comenzi, utilizați comanda ca parametru Ajutor ar trebui indicat numele ei. Linia de comandă afișată în lista următoare afișează o descriere a comenzii pentru.

Dacă ați încercat să introduceți comanda Ajutor, probabil ați observat că rezultatul muncii sale (așa-numita ieșire) nu se potrivește pe un ecran. Aceeași problemă apare cu textul de descriere a comenzii pentru. Vestea bună este că rezultatul poate fi redirecționat către un fișier. Linia de comandă prezentată în lista următoare generează fișierul comenzi.txt, care conține o listă a tuturor comenzilor MS-DOS.

ajutor > commands.txt

Pentru a genera un fișier cu o descriere a comenzii pentru, trebuie să dați următoarea comandă (puteți face ca fișierul de ieșire să numească orice).

ajutor pentru > for.txt

În total, există puțin mai puțin de 80 de comenzi în sistemele de operare Microsoft moderne și este imposibil să le descriem într-un singur articol. Aici putem să menționăm doar câteva comenzi utile pentru automatizarea procesării fișierelor și să arătăm cum să le utilizăm. Aceste comenzi vor fi folosite în exemple suplimentare. Puteți clarifica oricând detaliile prin comandă Ajutor sau în director.

copie- copierea unuia sau mai multor fișiere;

del- stergerea unuia sau mai multor fisiere;

mișcare- mutarea unuia sau mai multor fișiere sau directoare;

redenumiți(abreviat ren) - redenumirea unuia sau mai multor fișiere sau directoare;

xcopy- copierea arborelui subdirectoarelor;

mkdir(abreviat md) - crearea unui director;

rmdir(abreviat rd) - ștergerea unui director.

Una dintre regulile generale ale sintaxei comenzii MS-DOS este că atunci când se specifică parametrii, mai întâi este specificată sursa, apoi rezultatul. De exemplu, dacă vrem să mutăm un fișier bere.txt din catalog cutie la catalog masa, trebuie să introducem comanda dată în lista următoare.

muta caseta\beer.txt tabel

Mai întâi ce să muți, apoi unde să te muți.

Dacă vrem să redenumim fișierul lena.txt la dosar natasha.txt, atunci comanda trebuie scrisă așa cum se arată mai jos.

ren lena.txt natasha.txt

Mai întâi, ce să redenumești, apoi ce să redenumești.

Directorul curent. Căi absolute și relative

Când lucrați cu comenzi de fișiere, conceptul de director curent devine extrem de important. Ideea este că atunci când specificăm un fișier ca parametru de comandă, folosim întotdeauna una dintre cele două moduri posibile de a le indica: fie o cale absolută, fie o cale relativă. În calea completă specificăm totul începând cu unitatea (sau numele rețelei computerului), de exemplu d:\misha\box\beer.txt. Indiferent de directorul care se întâmplă să fie actual când este introdusă comanda, calea completă va corespunde aceluiași fișier. Pentru o cale relativă, directorul curent servește ca punct de plecare. Cel mai simplu caz al unei căi relative este un nume de fișier. În contextul execuției comenzii, înseamnă un fișier cu acel nume situat în directorul curent.

Pentru a scrie o cale relativă către directorul curent, există o intrare condiționată . (punct). Pentru a înregistra calea relativă către directorul care conține directorul curent, există o notație condiționată .. (două puncte). Comanda afișată în lista următoare copiază toate fișierele din directorul curent în director vecin, situat lângă acesta.

copie *.* .\vecin

Fișiere lot

Până acum, când dăm exemple, am presupus că introducem comenzi manual de fiecare dată. Atunci când procesați un număr mare de fișiere sau executați sistematic aceleași comenzi, acest lucru devine greoi. Prin urmare, procesorul de comandă oferă capacitatea de a executa fișiere de comandă. Un fișier batch este un fișier text în care sunt introduse comenzi (sau cel puțin o comandă). Un exemplu de fișier batch este afișat în lista următoare. Încercați să ghiciți ce face acest fișier batch.

help copy > copy.help

ajuta la miscare > mutare.ajutor

muta *.help msdos-help

Dacă scopul acestui fișier rămâne un mister pentru dvs., atunci încercați să îl creați și să îl executați. Se obișnuiește să se dea fișierelor de comandă extensia băţ. Acesta este modul în care fișierele de acest tip sunt recunoscute de procesorul de comenzi. Acest fișier poate fi numit, de exemplu, face-ajutor.bat.

Pentru a rula fișierul batch:

    Introduceți numele lui ca o comandă. După aceasta, fișierul batch va fi executat.

Într-un fișier batch, fiecare comandă ocupă o linie. Mai precis, există o modalitate de a plasa o comandă pe mai multe linii consecutive; pentru a face acest lucru, imediat înainte de fiecare întrerupere de linie ar trebui să puneți simbolul „cap” ^ . (Fiecare cap trebuie să fie ultimul caracter de pe linia sa; după ea nu trebuie să existe spații sau tabulaturi.) Un exemplu de astfel de comandă este prezentat în lista următoare.

dacă există disser.txt ^

copie disser.txt ^

d:\știință\documente\schițe\surse

Dar, de dragul simplității, pentru a nu face rezerve de fiecare dată, vom presupune că, într-un fel, aceasta este o linie lungă „logică”.

Când un fișier batch este executat, procesorul de comenzi îl scanează de sus în jos de la prima linie până la ultima și execută comenzile în ordinea în care le întâlnește. Le execută în general de parcă le-am introduce manual pe fiecare dintre ele. În general, deoarece unele comenzi se comportă ușor diferit când sunt introduse manual și când sunt executate dintr-un fișier batch.

Privind în viitor, să spunem că, dacă este necesar, secvența de execuție a comenzii poate fi modificată folosind comenzi de control (ceea ce poate provoca o astfel de nevoie este o întrebare separată).

Nu confundați directorul curent cu directorul în care se află fișierul batch care urmează să fie lansat. Să presupunem că directorul curent este muncă, conține un director unelte, iar directorul de instrumente stochează fișiere batch. Rulați unul dintre ele cu comanda instrumente\collect-images.bat. Deci, „din punctul de vedere” al acestui fișier de comandă, directorul curent va fi în continuare muncă, dar nu unelte.

Comentarea fișierului batch și a ieșirii acestuia. comenzile echo și rem

Un fișier batch este în esență un program scris în limbajul procesorului de comandă al sistemului de operare. Textul programului ar trebui să fie furnizat cu comentarii, astfel încât, când reveniți la el ceva timp mai târziu, să nu vă amintiți dureros de ce este necesar acest program și cum funcționează.

Sistemul de comandă MS-DOS oferă o comandă pentru crearea de comentarii: rem. Aceasta este o comandă falsă care nu implică efectuarea niciunei acțiuni, dar vă permite să scrieți text arbitrar pe linia după numele dvs. Mai mult, procesorul de comenzi nu o percepe ca pe o eroare de sintaxă. Un exemplu de formatare a unui fișier de comandă cu comentarii este prezentat în lista următoare.

rem ************************************************ ****

rem Generarea fișierelor de ajutor

help copy > copy.help

ajuta la miscare > mutare.ajutor

muta *.help msdos-help

Observați liniile goale care despart fișierul batch în „paragrafe”. Acest truc simplu vă permite să faceți fișierul batch mai ușor de citit.

Când executați fișierul batch de mai sus, toate comenzile vor fi afișate pe ecran pe măsură ce sunt executate, ceea ce nu este întotdeauna convenabil. Emiterea comenzii poate fi dezactivată folosind comanda @echo dezactivat. Simbolul „câine” în fața comenzii ecou Aceasta înseamnă că această comandă în sine trebuie executată în modul „silențios”. Am putea la fel de bine să nu folosim linia de comandă ecoul oprit, dar plasați un „câine” în fața fiecărei comenzi.

În multe cazuri, doriți ca un fișier batch să afișeze anumite mesaje pe ecran (sau într-un fișier). În unele cazuri, acestea pot fi mesaje de eroare, în altele, mesaje informaționale care explică utilizatorului fișierului batch ce se întâmplă în acest moment, când creăm un alt fișier util cu fișierul batch. Aceeași comandă echo este folosită pentru afișarea mesajelor. Textul mesajului care urmează să fie afișat îi este transmis ca parametru. Lista fișierului batch îmbunătățit este prezentată mai jos.

rem ************************************************ ****

rem Generarea de fișiere de ajutor pentru comenzile de copiere și mutare

rem ************************************************ ****

@echo Se generează fișiere de ajutor. O secundă...

rem Generarea fișierelor de ajutor

help copy > copy.help

ajuta la miscare > mutare.ajutor

rem Creați un director pentru a stoca fișierele de ajutor

rem Mutați fișierele de ajutor în directorul pregătit

muta *.help msdos-help

ecou Gata!

Transmiterea parametrilor la un fișier de comandă

Să presupunem că vrem să creăm un fișier batch care generează mai întâi ajutor pentru a descrie o comandă specificată de utilizator și apoi îl încarcă în Notepad pentru vizualizare. Trucul este să îi spunem cumva data viitoare când rulăm fișierul batch ce comandă ne interesează de această dată.

Pentru a rezolva această problemă, este prevăzut un mecanism de procesare a parametrilor. Funcționează destul de simplu. Dacă, la rularea unui fișier batch, utilizatorul a specificat mai mulți parametri, atunci în textul fișierului batch îl notăm pe primul dintre aceștia cu intrarea %1 , a doua intrare %2 , a treia intrare %3 etc. Folosim aceste notații în textul fișierului de comandă în același mod în care folosim pronumele în vorbirea naturală.

Textul fișierului de comandă care rezolvă problema este afișat în lista următoare. Atenție la comandă Ajutor. Primul parametru al fișierului de comandă îi este transmis ca parametru.

rem Creăm un fișier cu o descriere a comenzii,

rem al cărui nume este trecut ca parametru

ajutor %1 > ajutor.tmp

rem Încărcați fișierul de descriere în editorul Notepad

notepad help.tmp

Să presupunem că dăm numele acestui fișier batch arată-ajutor.bat. Pentru a încărca o descriere a unei comenzi într-un bloc de note, de exemplu, dir, trebuie să introducem comanda după cum urmează.

show-help.bat dir

Următorul fișier de comandă creează un director cu numele specificat în primul parametru și scrie în el un fișier care conține textul care descrie comanda specificată în al doilea parametru.

rem Exemplu de fișier de comandă cu doi parametri

rem Creați un director cu numele specificat de primul parametru

rem Creați un fișier în el cu o descriere a comenzii,

rem specificat de al doilea parametru

ajutor %2 > %1\%2.help

Ce se întâmplă dacă utilizatorul specifică patru parametri în loc de doi atunci când rulează acest fișier batch? E în regulă, nu vor interfera cu nimic, pur și simplu nu vor fi folosite. Ce se întâmplă dacă utilizatorul specifică doar primul parametru? Al doilea parametru va fi gol. Efectul va fi acesta: fișierul batch va fi executat, dar ca și cum ar fi în locul înregistrării %2 nu este nimic. Comanda help va genera o listă cu toate comenzile și o va plasa într-un fișier cu un nume gol și extensia .help. Dacă utilizatorul rulează acest fișier fără a specifica niciun parametru, atunci când procesorul de comandă încearcă să execute comanda md(rețineți, acesta este pentru crearea unui director), vom obține o eroare de sintaxă deoarece comanda md trebuie să aibă un parametru.

Astfel, utilizarea parametrilor creează oportunități mari, dar poate complica semnificativ lucrurile. Pentru ca fișierul batch să funcționeze întotdeauna corect, este necesar să verificați corectitudinea parametrilor specificați de utilizator și să răspundeți cumva la datele de intrare incomplete sau incorecte. Desigur, nu puteți face acest lucru, dar un fișier batch care funcționează incorect poate cauza probleme, mai ales dacă implică ștergerea sau suprascrierea datelor.

Variabile. setați comanda

O variabilă este o valoare numită. În manualele de programare, o variabilă este de obicei comparată cu un plic cu un nume scris pe el. Puteți pune ceva în interiorul plicului, de exemplu, o anumită sumă de bani - aceasta este valoarea sa. Ca și în cazul plicului, valoarea variabilei poate fi modificată.

Pentru a declara o variabilă și, în același timp, pentru a-i atribui o valoare, utilizați comanda a stabilit. Un exemplu al acestei comenzi este prezentat în lista următoare.

Pentru a extrage valoarea unei variabile, numele acesteia este plasat între semne de două procente, așa cum se arată mai jos.

rem Compilator de fișiere de ajutor în format CHM

setați help_compiler=c:\HTML Help Workshop\hcc.exe

rem Fișierul de ajutor al proiectului pentru modulul „Depozit”.

set store_hpj=help\sources\store\store.hpj

rem Fișierul de ajutor al proiectului pentru modulul „Vânzări”.

set sales_hpj=help\sources\sales\sales.hpj

rem Compilați fișiere de ajutor

%help_compiler% %store_hpj%

%help_compiler% %sales_hpj%

Următoarea listă arată de ce variabilele sunt utile.

În primul rând, vă permit să utilizați un fragment scurt sinonim cu acesta în interiorul unui fișier batch în loc de un fragment lung (de exemplu, calea către compilatorul fișierului de ajutor). Cel puțin este convenabil.

În al doilea rând, vă permit să evitați repetarea în textul fișierului de comandă a fragmentelor care se pot schimba în viitor. Imaginează-ți că am reinstalat Microsoft HTML Workshop într-un alt director. Dacă o variabilă este utilizată într-un fișier batch pentru a înregistra calea către aceasta, atunci va fi suficient să corectați o singură linie din fișierul batch, și anume cea în care este atribuită valoarea variabilei help_compiler. Dacă am scris calea către compilator de fiecare dată când trebuie apelată, atunci după schimbarea căii ar trebui să corectăm fiecare astfel de linie. În exemplul dat sunt două, dar într-un proiect real ar putea fi la fel de ușor cinci sau cincisprezece dintre ele, în funcție de numărul de fișiere de ajutor pe care dorim să le compilam. Problema nu este că corectarea manuală a fiecărei linii este dificilă (la urma urmei, nimeni nu a anulat comenzile „copiere” și „lipire”), ci că acest lucru crește foarte mult probabilitatea unei erori accidentale.

Parametrii fișierului batch sunt, de asemenea, variabile, dar diferă de variabilele obișnuite prin faptul că valorile lor sunt setate la lansarea fișierului batch. Pe viitor, când vorbim despre variabile, în special despre lucrul cu valorile lor, ne vom referi și la parametrii fișierului de comandă, cel puțin în absența unor rezerve explicite în acest sens.

La scrierea fișierelor batch, este adesea utilizată următoarea tehnică: mai multe valori variabile sunt indicate una lângă alta (sau intercalate cu unele simboluri sau linii), astfel încât să se obțină o nouă valoare semnificativă. Un exemplu este prezentat în lista următoare.

Verificarea condițiilor și selectarea opțiunilor. comenzi if and goto

Comanda if vă permite să selectați grupuri de comenzi dintr-un fișier batch care sunt executate sau nu, în funcție de anumite condiții. Pentru ce este?

Verificarea condiției este aproape un pas necesar atunci când se creează fișiere batch care utilizează parametri. Înainte de a începe lucrul, fișierul batch trebuie, în general, să se asigure că i se transmite setul corect de parametri. În caz contrar, există un risc mare ca acesta să fie executat incorect sau fără rezultate, iar utilizatorul va rămâne doar să se întrebe care este problema. În plus, dacă un fișier batch șterge, mută sau suprascrie orice date, poate provoca chiar daune dacă parametrii sunt incorecți.

Următoarea listă arată fișierul de comandă de compilare a fișierului de ajutor cu care sunteți deja familiarizat. O verificare pentru lipsa golului primului parametru a fost adăugată la începutul fișierului de comandă. Vă rugăm să rețineți această caracteristică de sintaxă: operația de comparare folosește un semn egal dublu. Dacă primul parametru nu este gol, se execută comanda goto, care „aruncă” shell-ul la eticheta specificată. În acest caz, numele acestei etichete este compilat. Rețineți că acolo unde apare o etichetă, numele acesteia este precedat de două puncte, dar în comanda goto nu este. Dacă primul parametru este gol, shell-ul trece la următoarea linie, care produce un mesaj de eroare. Și apoi la următorul, care îl transferă până la sfârșitul fișierului într-o etichetă cu numele finalizarea.

dacă nu "%1"="" mergi la compilare

rem Dacă parametrul este gol, afișăm un mesaj de eroare

echo Numele proiectului fișierului de ajutor nu este specificat

rem și mergeți la sfârșitul fișierului batch

rem pentru a termina marca

rem Aceasta este o etichetă numită compile

rem Mai jos sunt comenzile de compilare

rem Calea către compilatorul fișierului de ajutor

set help_compiler="c:\Program Files\HTML Help Workshop\hhc.exe"

rem Calea către directorul în care se află proiectele fișierelor de ajutor

setați calea_proiect=e:\work\projects\help-projects

rem Apelați compilatorul pentru a procesa un anumit proiect,

rem al cărui nume este trecut în primul parametru

%help_compiler% %project_path%\%1.hpj

rem Aceasta este o etichetă numită finish

Să recunoaștem, metoda propusă de verificare a unui parametru nu este cea mai reușită.

În primul rând, dacă utilizatorul specifică în mod greșit numele unui fișier inexistent ca parametru, fișierul batch va fi mulțumit de acest lucru și va încerca să compileze. O modalitate mai corectă este de a verifica dacă un astfel de fișier există într-adevăr. În acest scop, limbajul de comandă MS-DOS oferă un cuvânt special exista. Prin urmare, ar fi mai bine să scrieți: dacă există %1.hpj merge la compilare.

În al doilea rând, utilizarea activă a comenzii mergi la(așa-numitul salt necondiționat) și etichetele încurcă foarte mult codul. Din punct de vedere tehnic, nu sunt rele, dar depanarea și menținerea unui fișier batch scris în acest stil este destul de incomod. Prin urmare, programatorii au considerat de mult săriturile necondiționate o tehnică nedorită. Mai jos este prezentată o variantă mai corectă, din punct de vedere al stilului de programare, structurată, care folosește construcția daca...altfel. Funcționează astfel: dacă condiția este adevărată, comenzile din paranteze după dacă, iar dacă este fals, atunci între paranteze după altfel.

rem Verificați dacă parametrul este setat

dacă nu există %1.hpj (

rem Calea către compilatorul fișierului de ajutor

set help_compiler="c:\Program Files\HTML Help Workshop\hhc.exe"

rem Calea către directorul în care se află proiectele fișierelor de ajutor

setați calea_proiect=e:\work\projects\help-projects

rem Apelați compilatorul pentru a procesa un anumit proiect,

%help_compiler% %project_path%\%1.hpj

Să dăm un alt exemplu de lucru cu cecuri. Următorul fișier batch creează un director numit fișiere de ajutor(să presupunem că pentru a încărca fișiere de ajutor compilate în el). Mai mult, dacă există deja un director cu același nume (și probabil conține fișiere de ajutor vechi pe care nu ai dori să le pierzi: ce se întâmplă dacă cele noi se dovedesc a fi mai proaste?), fișierul batch îi atribuie extensia bak . Dar dacă directorul help-files.bak exista deja, apoi fișierul batch îl șterge (vom presupune că o copie de rezervă este suficientă pentru noi).

dacă există help-files.bak rd help-files.bak

dacă există fișiere de ajutor ren fișiere de ajutor help-files.bak

Procesarea fișierelor în bloc. pentru comandă

Comanda for vă permite să organizați execuția acțiunilor repetate de același tip. Îl puteți folosi pentru a afișa numerele de la unu la zece, așa cum se arată în lista următoare.

pentru /l %%i în (1,1,10) face eco %%i

Variabil i numit contor de bucle. Datorită sintaxei unice a comenzii pentru, numele contorului buclei trebuie să fie format dintr-o literă. Mai mult, dacă scriem un fișier batch, atunci trebuie să punem un semn de procent dublu în fața numelui contorului de bucle, dar dacă doar tastăm o comandă pe linia de comandă, atunci una singură.

Logica acestei comenzi este următoarea. După cuvânt în este indicat intervalul de modificare a contorului de cicluri. În această versiune a comenzii, acesta este un triplu de numere: valoarea inițială a contorului, pasul de numărare, valoarea limită a contorului. Când executați o comandă, shell-ul va atribui mai întâi variabila i sens 1 , iar apoi la fiecare pas al buclei o va crește cu 1 până când se depăşeşte 10 . Evident, vor fi zece astfel de pași. Dacă am specificat un număr ca pas de numărare 2 , atunci bucla ar fi executată de cinci ori. La fiecare pas al buclei, corpul buclei scris după cuvânt este executat do. În exemplul de mai sus, aceasta este comanda echo, care afișează valoarea curentă a contorului buclei.

Vă puteți gândi probabil la o situație în care este de fapt necesar ceva de genul acesta, dar de obicei comanda pentru folosit pentru a repeta și procesa fișiere. Trebuie spus că în cazuri destul de simple, procesarea în bloc a fișierelor se realizează folosind caractere wildcard. Dacă vrem să înlocuim toate fișierele din directorul curent cu extensia .htm pe .html, introducem comanda ren *.htm *.html. Dar dacă același lucru trebuie făcut nu într-un director, ci într-un arbore de directoare, atunci nu puteți face fără comanda for. Următorul fișier batch efectuează această operație pentru toate fișierele htm din subdirectorul site-ului web al directorului curent. Mai exact, în întregul arbore de directoare care se află în interior site-ul web.

pentru /r site-ul %%i în (*.htm) do ren %%i %%~ni.html

Cheie /r indică necesitatea de a parcurge directorul site-ul webși toate interiorurile sale. Dacă nu îl specificați (dar atunci nu aveți voie să specificați un director), atunci vor fi procesate numai fișierele din directorul curent. Gama de valori ale contorului buclei din această variantă de comandă este setul tuturor fișierelor cu extensia .htm, situat în interiorul unui director (mai precis, un arbore) site-ul web. O intrare ciudată la prima vedere ~niînseamnă că din valoarea variabilei i Trebuie doar să selectați numele fișierului. Limbajul de comandă MS-DOS oferă mai mulți astfel de modificatori, de exemplu, scrierea ~xi denotă extensia fișierului. Toți modificatorii sunt descriși în ajutorul comenzii pentru.

Corpul unei bucle poate consta din mai multe comenzi cuprinse între paranteze.

pentru /r site-ul web %%i în (*.htm) do (

rem Tipăriți numele fișierului

rem Redenumiți fișierul

ren %%i %%~ni.html

Transferarea controlului într-un alt fișier batch. comanda de apel

Este posibil să apelați un alt fișier batch dintr-un fișier batch. Comanda pentru aceasta este apel. Grozav, variabilele specificate în fișierul batch apelant sunt „vizibile” pentru cel apelat. Și invers, după ce fișierul apelat își termină activitatea și returnează controlul apelantului, acesta din urmă va „vedea” variabilele lăsate lui de numita „moștenire”. Acest lucru permite dezvoltatorului de fișiere batch să facă ceva de genul acesta: Dacă mai multe fișiere de comandă trebuie să utilizeze aceleași valori, de exemplu, căile către unele fișiere, acestea pot fi plasate într-un fișier de comandă separat, care va juca rolul unui fișier de configurare. Fiecare fișier de comandă de lucru va începe cu un apel la fișierul de configurare. Avantajul este că atunci când schimbați căile, trebuie să faceți modificări doar unui fișier de configurare și nu multor lucrători.

Fișier batch „Configurare”. config.bat.

rem Calea către compilatorul fișierului de ajutor

set help_compiler="c:\Program Files\HTML Help Workshop\hhc.exe"

rem Calea către directorul în care se află proiectele fișierelor de ajutor

setați calea_proiect=e:\work\projects\help-projects

Fișier batch „de lucru”.

rem Configurarea variabilelor

rem Verificați dacă parametrul este setat

dacă nu există %1.hpj (

rem Dacă parametrul este gol, afișăm un mesaj de eroare

echo Acest proiect de fișier de ajutor nu există.

rem Mai jos sunt comenzile de compilare

rem Apelați compilatorul pentru a procesa un anumit proiect,

rem al cărui nume este trecut în primul parametru

%help_compiler% %project_path%\%1.hpj

Salutari! Astăzi m-am hotărât să vă vorbesc despre fișierele bat, sau fișierele batch, așa cum sunt pur și simplu numite. Presupun că utilizarea fișierelor bat va fi utilă pentru fiecare utilizator de computer, va extinde capacitățile și va simplifica performanța multor sarcini.

Ce este un baht și de ce este necesar?

Bat este o extensie de fișier (bat). Cu siguranță mulți utilizatori știu că fiecare fișier are propria extensie. Acesta este ultimul rând după punctul din titlu. Este această „coadă” pe care sistemul trebuie să o identifice ca muzică, videoclip, imagine sau orice alta. Puteți chiar să experimentați. Luați orice imagine și redenumiți-o împreună cu extensia. Windows vă va anunța imediat că modificați extensia și este posibil ca fișierul să nu fie detectat de sistem. Sunteți de acord cu solicitarea și veți vedea că fotografia dvs. nu mai este afișată ca imagine. Dacă îl redenumiți ca înainte, totul va fi restaurat din nou. Dacă extensiile nu sunt vizibile pentru dvs., trebuie să activați această funcție în Explorer, în fila „Vizualizare”.

Pentru Windows, un liliac este un fișier cu instrucțiuni pentru anumite acțiuni care sunt conținute în fișierul bat în sine. Se va lansa un fișier gol în format baht, dar nu vor fi efectuate acțiuni. Un fișier batch este un set de instrucțiuni pentru consola Windows.

Cum se creează un fișier bat pentru a rula programul?

Pentru a crea un fișier batch, trebuie să lansați un editor de text, apoi să salvați fișierul cu numele final bat. Dacă editorul dvs. nu are o funcție de salvare cu o astfel de extensie, atunci trebuie să o înregistrați singur. Când rulăm un astfel de fișier, se va deschide o consolă și dacă nu există comenzi, se va închide imediat.

Acum să setăm comanda pentru a rula programul. Pentru a face acest lucru, trebuie să deschideți fișierul batch creat în Notepad sau alt editor și să introduceți comanda.

Să lansăm browserul ca exemplu. Mai întâi trebuie să introduceți comanda Start și după spațiu să scrieți Opera.

Ar trebui să arate așa:

Începeți Opera

Acest lucru va funcționa pentru programele cunoscute de sistem, dar dacă lansați un software care nu este cunoscut de sistem, va trebui să scrieți întreaga cale către program. De exemplu, dacă aveți instalat ftp în folderul Program Files, atunci pentru a-l porni trebuie să introduceți comanda

porniți filezilla

Și dacă clientul ftp este instalat într-un alt folder, va trebui să introduceți întreaga cale.

Domeniul de aplicare al fișierelor batch este destul de larg. Puteți introduce o varietate de comenzi în configurație. Le puteti afla pe Internet Daca va intereseaza informatii mai detaliate despre comenzi scrieti in comentarii si voi incerca sa va raspund. VBS funcționează într-un mod similar. Acesta este același lucru, doar comenzile nu sunt executate prin consolă, iar comenzile sunt ușor diferite.

Această tehnologie va ajuta la îndeplinirea diferitelor tipuri de sarcini și în modul automat. Unii utilizatori chiar scriu viruși în acest fel. Pentru a face imposibilă modificarea configurației fișierului folosind un editor de text, trebuie să convertiți fișierul bat în exe. Acest lucru vă va ajuta să faceți diverse programe auxiliare pe care le puteți găsi pe Internet. De exemplu, pentru a converti bat în exe, programul de conversie Bat în exe vă va ajuta.

Funcția baht este foarte utilă și uneori necesară. Folosind-o puteți scrie programe întregi cu o gamă restrânsă de acțiuni. Domeniul de aplicare depinde numai de cunoașterea comenzilor și de capacitatea de a le combina. Prin urmare, folosiți și extindeți-vă abilitățile și capacitatea de a folosi un computer la nivel de Super User.

Fișierele BAT sunt documente text care au o extensie specială. Comenzile sunt scrise în el pentru execuția ulterioară pe linia de comandă. Prin rularea fișierului, activezi programul CMD, acesta citește comenzile care sunt executate secvențial. În acest fel, puteți face lucrul cu linia de comandă mai ușoară, menținând în același timp ordinea dorită. Desigur, puteți introduce manual toate comenzile simultan în linia de comandă, totuși, dacă trebuie să repetați aceleași operațiuni, este mult mai convenabil să faceți acest lucru citind automat lista scrisă sub forma unui document bat. Această opțiune este, de asemenea, practică și convenabilă, deoarece ulterior puteți modifica ordinea, puteți adăuga procese noi de care aveți nevoie și, de asemenea, le puteți elimina pe cele inutile.

BAT ajută la automatizarea proceselor: lansare de programe, arhivare, backup. Prin urmare, este util să știți cum să creați singur un fișier bat, să îl corectați și să îl completați.

Lucrul cu bat folosind Notepad

Algoritm de creare

Procesul de lucru prin Notepad nu este deloc complicat. Dacă nu ați mai făcut acest lucru înainte, vă puteți descurca bine, învățând cum să creați un fișier bat și să adăugați comenzi la acesta. Să începem cu creația. Aici, urmați cu strictețe algoritmul:

  1. Când creați un document text, inițial îl veți obține cu extensia txt. Există mai multe moduri de a efectua această operațiune, unele depind de nivelul de Windows pe care l-ați instalat:
    • În folderul pe care l-ați ales, faceți clic dreapta pe câmp, se va deschide un meniu, acolo selectam „Creare” - „Document text”;
    • Lansați „Notepad” prin „Start” selectând „Toate programele” - „Accesorii” - „Notepad” (pentru Windows 7);
    • În versiunile ulterioare (după 7) de Windows, puteți deschide și „Notepad” prin „Start”: treceți prin „Toate aplicațiile”, apoi „Accesorii” - „Windows” și acolo selectați „Notepad” din listă;
    • Deschideți fereastra de comandă a sistemului folosind combinația Win + R, introduceți „notepad” în linie, faceți clic pe „Ok”.
  2. Introduceți textul comenzii. Pentru a încerca, notați, de exemplu, „START taskmgr.exe” - porniți managerul de activități. „START” îi spune interpretului de comenzi că un program trebuie lansat, apoi este indicat executabilul programului.
  3. Specificați calea în care să salvați documentul creat.
  4. Specificați în fereastra de salvare:
    • în linia „Tip” - „Toate fișierele”;
    • în linia „Nume”, introduceți numele și extensia bat, adăugându-le după nume, plasând un punct între nume și extensie, de exemplu, „fișier.bat”.
  5. Faceți clic pe „Salvare”.

Un fișier batch cu extensia .bat va apărea în folderul pe care l-ați specificat.

Rularea unui fișier

Este mai ușor să deschideți un fișier bat făcând dublu clic pe el cu mouse-ul. A doua metodă este să lansați din linia de comandă: introduceți adresa unde se află documentul cu extensia .bat pe care l-ați salvat.

Editare

Dacă doriți să schimbați documentul - adăugați comenzi în fișierul bat, ștergeți unele dintre ele, introduceți alt program pentru a lucra cu el mai târziu - nu este greu de făcut. Deschideți documentul folosind un editor de text. Este convenabil să faceți acest lucru făcând clic dreapta pe fișierul bat și selectând „Editați” în meniul care se deschide. Se va lansa Notepad - acolo puteți edita comenzi, puteți modifica conținutul și puteți face completări.

Aplicația Dr.Batcher

Pentru un începător care abia începe să lucreze cu interpretul de comenzi și îl folosește destul de rar, Notepad este suficient. Dacă doriți să ajungeți la un nivel profesional superior, vă recomandăm să utilizați utilitarul Dr.Batcher. În Dr.Batcher puteți numerota pagini, există suport pentru marcaje, o listă de comenzi de sistem utilizate în bat, comenzile introduse sunt evidențiate.

Crearea unui document

Algoritmul este simplu și nu necesită abilități speciale sau profesionalism. După descărcarea utilitarului, puteți face rapid tot ce aveți nevoie.

Lansați Dr.Batcher.

  1. Deschideți o pagină nouă: „Fișier” - „Nou” sau faceți clic pe pictograma foaie goală situată sub meniul „Fișier”.
  2. În caseta de dialog, faceți clic pe „Empty Batch File”.
  3. Va apărea o fereastră de program care conține funcții pentru lucrul cu bat.
  4. După ce ați introdus textul dorit, salvați.

Editare

Dacă trebuie să schimbați un fișier bat, acest lucru se poate face în mai multe moduri în Dr.Batcher:

  1. Faceți clic dreapta pe pictogramă și selectați „Editați cu Dr.Batcher” din meniu.
  2. Lansați Batcher. Deschideți fișierul bat dorit urmând calea:
  • "Fişier";
  • "Deschis";
  • specificați calea către document;
  • "Deschis".

După ce ați urmat una dintre căile sugerate, veți deschide utilitarul; va apărea text în fereastră în care puteți face ajustări, modifica comenzi, le puteți completa și șterge pe cele inutile.

Un fișier bat este util atunci când trebuie să automatizați sarcini în Windows. Mai ales dacă este necesar să se efectueze acțiuni într-un anumit algoritm de mai multe ori (periodic sau la rând). Acest lucru este de obicei necesar la crearea unui sistem de directoare, la redenumirea în bloc a fișierelor și la alte operațiuni simple și mai complexe. După ce ați salvat ordinea acțiunilor, puteți rapid și fără a pierde timp cu introducerea manuală a comenzilor, puteți începe procesul în orice moment, îl repetați pentru diferite programe, introducând doar numele lor în textul final. Recomandările despre cum să creați un fișier lilieci descrise mai sus vă vor ajuta nu numai să le creați singur, ci și să le editați.

Astăzi vom afla despre ce este fișier batși în același timp vom crea unul dintre ele.

Cred că mulți, într-un fel sau altul, creează periodic (așa-numitele backup-s) ale anumitor fișiere și foldere.

Totul pare a fi familiar și nu trebuie să faceți nimic deosebit de complicat: introduceți o unitate flash, deschideți " Calculatorul meu", găsiți ceea ce trebuie copiat, selectați, faceți clic cu mouse-ul, selectați "copiere", treceți la directorul dorit, faceți clic pe "lipire", etc.

Dar adesea toate aceste clicuri și mișcări inutile sunt oarecum obositoare și ocupă timp prețios, mai ales când copiați frecvent aceleași date. În acest articol vă voi spune cum, sau mai degrabă, scrieți așa ceva fișier bat.

Merge.

Fișier bat - ce este, introductiv

În primul rând, puțin despre ce este fișier bat, de ce este nevoie și cu ce se mănâncă (sau ei). Pentru a nu reinventa roata, voi folosi un fragment din Wikipedia:

Fișier lot (de ex. băţ dosar, din engleză fișier batch) - fișier text în MS-DOS, OS/2 sau Windows, care conține o secvență de comenzi destinate a fi executate de interpretul de comenzi.

După rularea fișierului batch, programul interpret (de obicei COMMAND.COM sau CMD.EXE) îl citește linie cu linie și execută comenzile secvenţial.

Fișier lot - analog script shell V Unix-cum ar fi sistemele de operare.

Fișierele batch sunt utile pentru lansarea automată a aplicațiilor. Domeniul principal de aplicare este automatizarea celor mai de rutină operațiuni pe care un utilizator de computer trebuie să le efectueze în mod regulat.

Exemple de astfel de operațiuni includ: procesarea fișierelor text; copierea, mutarea, redenumirea, ștergerea fișierelor; lucrul cu foldere; arhivare; crearea de copii de siguranță a bazei de date etc.

Fișierele lot suportă operatori dacăȘi mergi la(și în sistemele familiei Windows NTși operator extins pentru), care vă permite să procesați rezultatele executării comenzilor sau aplicațiilor anterioare și, în funcție de aceasta, să continuați să executați cutare sau cutare bloc de comenzi (de regulă, dacă aplicația se finalizează cu succes, aplicația returnează 0 în variabila errorlevel; dacă nu reușește, 1 sau o valoare mai mare).

Fișiere lot în DOS au o extensie. băţ; pentru alte sisteme de operare pot avea extensii diferite - de exemplu, . CMD V Windows NTȘi OS/2, sau .BTM V 4DOS sau scoici similare.

Acum că am rezolvat teoria, să trecem la practica reală, și anume crearea unei porecle de lilieci.

Vrei să știi și să poți face mai multe singur?

Vă oferim training în următoarele domenii: calculatoare, programe, administrare, servere, rețele, construirea site-urilor web, SEO și multe altele. Află acum detaliile!

Cum să creați un fișier bat și să îl utilizați

Să pregătim un mic câmp de testare, astfel încât să avem ceva de experimentat. Deschide computerul meu și creează pe disc C:\ tati Test. Intră în el și creează un folder în el.

Aruncă dosare acolo (bucăți 5-10 ) - fotografii, documente etc., etc. (orice mai scurt). Câmpul pentru experimentare este gata. În continuare, trebuie să ne creăm, de fapt, pe noi înșine băţ un fișier la clic pe care vom copia folderul C:\test\testcopyîntr-un folder, să zicem C:\test\backup. Creați un al doilea dosar (care backup) nu este necesar - va apărea automat.

Crea băţ foarte simplu. Faceți clic dreapta unde vrem să-l creăm (locația nu este importantă - puteți direct pe desktop) și selectați " Crea" - "Document text".

Dați un nume fișierului creat și deschideți-l cu notepad sau orice alt editor de text. Acestea. în acest moment avem un fișier text deschis numit, să zicem, copy.txt.

Adăugați o comandă la fișier, de exemplu, pentru a copia

Apoi, de fapt, trebuie să introducem o comandă în acest fișier care va fi redată folosind consola ( cmd) când rulați acest fișier. În acest caz vom folosi comanda xcopy pentru că tocmai aceasta vă permite să copiați fișiere, directoare și subdirectoare. Luând în considerare toate căile, obținem următoarea comandă:

xcopy C:\test\testcopy C:\test\backup /f /i /y /s

Lasă-mă să explic ce este:

  • xcopy- aceasta este echipa însăși;
  • C:\test\testcopy- aceasta este sursa, i.e. folderul din care sunt copiate fișierele și directoarele;
  • C:\test\backup- acesta este rezultatul, i.e. locația în care vor fi copiate fișierele și directoarele;
  • /f /i /y /s- opțiuni suplimentare de sintaxă pentru comandă xcopy(vezi sintaxa de mai jos în text).

Numărul de linii poate fi oricare, adică dacă trebuie să copiați 100 foldere, tu scrii 100 linii într-un singur fișier și modificați doar căile din ele.

Ce sunt acolo (adică cele pe care le-am indicat în acest exemplu):

  • /f- afișează numele fișierelor sursă și fișierelor rezultate în timpul copierii
  • /i- creează un director nou dacă nu se află în calea finală
  • /y- suprascrie fișierul dacă acesta există deja
  • /s- copiază directoare și subdirectoare dacă nu sunt goale. Dacă parametrul /s nespecificat, comanda xcopy va funcționa doar cu un singur director.

În ceea ce mă privește, aceasta este lista principală de parametri necesari pentru copierea „silențioasă”, adică. fără întrebări inutile despre rescriere, crearea de directoare și alte frânghii. În ceea ce privește restul sintaxei, puteți citi, de exemplu, .

Schimbați formatul fișierului și încercați să-l rulați

Mai întâi deschidem" Calculatorul meu„hai să mergem mai departe acolo” Serviciu" - "Proprietățile folderului" - "Vedere"și debifați" Ascundeți extensia pentru tipurile de fișiere înregistrate".

Faceți clic pe " aplica" Și " Bine". Acum putem schimba extensia fișierelor cunoscute de sistem și, prin urmare, mergem la fișierul nostru, facem clic dreapta, selectăm " Redenumiți„și tastând pe tastatură schimbăm extensia de la TXT pe băţ(răspundem afirmativ la întrebarea sistemului dacă merită făcut acest lucru).

Ca urmare, avem următoarea imagine (în cazul dvs. fișierul este numit diferit, dar are același format):

De fapt, tot ce ne rămâne este să lansăm acest fișier făcând clic pe el cu mouse-ul.

Dacă ați făcut totul corect, atunci consola va clipi în fața dvs. și va apărea un folder nou de-a lungul unei căi cunoscute cu un nume predeterminat și fișiere în interior copiate dintr-un folder cunoscut de dvs., adică imaginea va arăta cam așa:

Ei bine, sau ușor diferit, în funcție de căile și numele de foldere pe care le-ați specificat în comandă.
Puteți edita fișierul schimbându-i extensia înapoi la .txt și deschizându-l cu orice editor de text.

Postfaţă

Așa cum am spus deja și probabil că ați realizat - utilizarea unui astfel de lucru băţ fișierul „și deseori economisește mult timp, adică îl scrieți o dată și îl lansați periodic cu un singur clic și în loc de multe minute de clic cu mouse-ul și de accesarea cu crawlere prin toate folderele, obțineți un proces automat de copiere.

Dacă doriți, puteți seta lansarea acestuia băţ-nick în anumite zile prin programator Windows(sau alte programe care vă permit să faceți acest lucru) și, în general, uitați de problema manualului lung backup„ov.

Dacă aveți întrebări sau probleme, întrebați. Ca întotdeauna, voi ajuta în orice fel pot ;)

PS: Dacă memoria îmi este bine, atunci aceasta este o parte dintr-un subiect din cărțile de administrare inteligentă, și anume din secțiunea " Automatizarea administrației„.. ca să poți fi mândru de tine :)