Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Programe
  • Comenzi Bat-file (Windows). Cum creez un fișier cu extensia bat? Pentru ce sunt aceste fișiere?

Comenzi Bat-file (Windows). Cum creez un fișier cu extensia bat? Pentru ce sunt aceste fișiere?

În acest articol:

  • Definirea variabilelor
  • Variabile de linie de comandă (parametri pentru apelarea unui fișier bat)
  • Declarație de condiție IF
  • Funcții
  • Utilizarea valorilor de returnare (codul de ieșire de procesare)

Definirea variabilelor

A STABILIT<Имяпеременной>=<Значениепеременной>

Declarația SET este o extensie a opțiunilor disponibile pentru sistemul de operare. Specifică o variabilă a cărei valoare este înlocuită cu numele ei ori de câte ori acel nume este folosit între semnele procentuale. Deci, dacă este dat (variabilă cerută de multe jocuri care folosesc o placă de sunet de computer):

SET BLASTER = A220 I5 D1 P330

atunci când utilizați următoarea construcție într-un fișier batch:

ECHO% BLASTER%

ecranul va afișa „A220 I5 D1 P330”. Variabilele definite cu instrucțiunea SET sunt numite variabile de mediu și sunt vizibile după execuție până când DOS este repornit (cu excepția cazului în care sunt modificate manual în memorie). Adică poate fi folosit dintr-un fișier batch sau program după un job în altul. Cea mai cunoscută este variabila PATH, care este un set de căi pentru găsirea rapidă a fișierelor. Este setat în fișierul autoexec.bat.

Variabile de linie de comandă
(parametrii apelării fișierului bat)

%<цифра 0-9>

Ca în orice limbă, în limba fișierelor batch este posibilă utilizarea variabilelor primite ca parametri ai unui fișier bat.

Pot exista 10 variabile independente existente simultan. Acest lucru nu este suficient pentru scrierea de programe complexe, deși 3-4 sunt adesea suficiente pentru munca normală. Valoarea variabilei este egală cu valoarea parametrului corespunzător din linia de comandă. Variabila% 0 va conține numele fișierului .bat și, dacă ați specificat, calea către acesta. Adică, dacă rulați fișierul abc.bat cu următorii parametri:

abc.bat a bc def

atunci variabila% 0 va conține valoarea abc.bat,% 1 va conține valoarea a,% 2 va conține bc și% 3 va conține def. Această proprietate este utilizată pe scară largă pentru a crea fișiere batch generice atunci când aveți de-a face cu operațiuni repetitive.

Puteți folosi comanda SHIFT pentru a obține mai mult de 10 variabile din linia de comandă.

Comanda SHIFT vă permite să utilizați mai mult de 10 parametri de linie de comandă, însă, parametrii anteriori se pierd în consecință. Cu alte cuvinte, comanda SHIFT mută toate valorile variabilelor cu un pas spre stânga. Adică, variabila% 0 va conține valoarea conținută anterior în variabila% 1, iar variabila% 1 va conține valoarea variabilei% 2 înainte de schimbare. Cu toate acestea, această operațiune este ireversibilă, adică este imposibil să mutați variabilele înapoi.

Declarație de condiție IF

Din fericire, shell-ul cmd.exe din Windows 2000 modern și mai târziu acceptă blocuri de comandă în construcțiile de ramuri, ceea ce elimină nevoia de IF-uri etichetate. Blocurile de comandă sunt incluse în paranteze. Arată astfel (imitând stilul de indentare C / C ++):

condiția dacă (

Rem Comenzile din ramura „atunci”.

Rem...

) altfel (

Rem Comenzile din ramura „altfel”.

Rem...

Un exemplu concret de utilizare:

@echo dezactivat

setați BUILDMODE =% 1

dacă "% BUILDMODE%" == "" (

ECHO FAIL: Argumentul este necesar ^ (- debug, --release ^)

Ieșire / b 1

rem Eliminați toate cratimele din argument pentru a simplifica procesarea

setați BUILDMODE =% BUILDMODE: - =%

dacă „% BUILDMODE%” == „depanare” (

Setați CCFLAGS = / Od / MDd / Z7

) altfel (

Setați CCFLAGS = / O2 / MD

În opinia mea, acest lucru este deja foarte posibil să trăiești. Dar, ca întotdeauna, viața nu este atât de ușoară pe cât pare. Există o problemă. Variabilele utilizate în blocurile then și else sunt extinse înainte de a începe execuția acelor blocuri și nu în timpul execuției. În exemplul de mai sus, acest lucru nu provoacă probleme, dar în cele ce urmează va provoca:

dacă „% BUILDMODE%” == „depanare” (

Echo INFO: Setați modul de depanare a mediului

Setați OPTFLAGS = / Od

Setați CCFLAGS =% OPTFLAGS% / MDd / Z7

) altfel (

Echo INFO: Setați modul de eliberare a mediului

Setați OPTFLAGS = / O2

Setați CCFLAGS =% OPTFLAGS% / MD

Problema este că în ambele blocuri, înlocuirea variabilei OPTFLAGS va avea loc înainte ca aceasta să fie schimbată în timpul execuției acestui bloc. În consecință, valoarea pe care OPTFLAGS o avea la momentul începerii execuției acestui if-bloc va fi înlocuită în CCFLAGS.

Această problemă este rezolvată prin utilizarea expansiunii variabile leneșe. Variabile incluse în! ...! în loc de% ...%, acestea vor fi extinse în valorile lor numai în momentul utilizării directe. Acest mod este dezactivat implicit. Îl puteți activa fie utilizând comutatorul / V: ON când apelați cmd.exe, fie utilizând comanda:

în textul fișierului bat în sine. A doua modalitate mi se pare mai convenabilă - nu este foarte bine să ceri cuiva să ruleze scriptul tău cu un anumit parametru.

Acestea fiind spuse, exemplul anterior „greșit” ar putea fi corectat astfel:

setlocal enabledelayedexpansion

dacă „% BUILDMODE%” == „depanare” (

Echo INFO: Configurarea modului de depanare a mediului

Setați OPTFLAGS = / Od

Setați CCFLAGS =! OPTFLAGS! / MDd / Z7

) altfel (

Echo INFO: Configurarea modului de eliberare a mediului

Setați OPTFLAGS = / O2

Setați CCFLAGS =! OPTFLAGS! / MD

Acum este aproape un bloc complet dacă-atunci-altfel. Aproape, pentru că dacă întâlniți o paranteză de închidere într-una dintre comenzile ecou, ​​atunci trebuie să o scăpați cu ^, altfel parserul devine confuz...

Dar, în orice caz, acest lucru este mult mai bun decât cantitatea nebună de etichete și tranziții.

Funcții

Este posibil să creați o funcție într-un fișier bat? Da, poti. Mai mult, uneori chiar este necesar. Adevărat, acestea pot fi numite funcții condiționat.

Există o sintaxă specială pentru comanda de apel, care vă permite să săriți la o etichetă din același fișier bat, amintindu-vă locul din care a fost făcut acest apel:

call: label arguments

Revenirea din funcție este efectuată de comanda:

ieșire / b [cod de returnare opțional]

Comutatorul / b este foarte important aici: fără el, ieșirea nu se va face din funcție, ci din script în general.

Pentru detalii, tastați în linia de comandă:

apel /?

Ieșire /?

Interesant este că comanda de apel cu această sintaxă acceptă apeluri recursive cu crearea automată a unui nou cadru pentru argumente variabile% 0-% 9. Acest lucru poate fi de ajutor uneori. Iată un exemplu clasic de calcul factorial recursiv în limbajul de comandă:

@echo dezactivat

apel: factorial% 1

echo% REZULTAT%

Ieșire

rem Funcția de calcul al valorii factoriale

Intrare rem:

rem% 1 Numărul pentru care doriți să calculați factorialul

Ieșire rem:

rem% REZULTAT% Valoare factorială

: factorial

dacă% 1 == 0 (

Setați REZULTAT = 1

Ieșire / b

dacă% 1 == 1 (

Setați REZULTAT = 1

Ieșire / b

setați / a PARAM =% 1 - 1

apel: factorial% PARAM%

set / a REZULTAT =% 1 *% REZULTAT%

ieșire / b

Exemplu de lucru:

> factorial.bat 10

3628800

Utilizarea valorilor returnate
(procesarea codului de terminare a programului)

Orice program, la finalizarea lucrării, returnează codul său de ieșire la sistemul de operare. Este acceptat să returneze zero la succes, în caz contrar - un cod de eroare. Uneori, sau mai degrabă des, programul returnează „în mod deliberat” o valoare diferită de zero, astfel încât în ​​fișierul batch a fost posibil să „afle” câteva dintre detaliile funcționării acestuia. De exemplu, programul returnează codul tastei apăsate, iar fișierul bat efectuează diverse acțiuni asupra acestuia.

Cum poate un fișier batch să afle codul de ieșire al unui program executat? Variabila cheie ERRORLEVEL este furnizată pentru aceasta.

Un exemplu de fișier batch cu niveluri de eroare:

@ECHO OPRIT

REM Rulați programul prg1.exe

PRG1.EXE

Analiza codului de ieșire REM

DACĂ NIVEL DE EROARE 2 GOTO FILENOTFOUND

DACĂ EROARELELEVEL 1 GOTO WRITEERROR

DACĂ NIVEL EROARE 0 GOTO EXITOK

GOTO ONEXIT

: FIȘIERUL NU A FOST GĂSIT

Eroare ECHO! Fișierul nu a fost găsit!

GOTO ONEXIT

: SCRIERE EROARE

ECHO Eroare de scriere!

GOTO ONEXIT

: EXITOK

ECHO Programul sa încheiat cu succes.

GOTO ONEXIT

: ONEXIT

Vă rugăm să rețineți că analiza codului de completare nu începe de la zero, ci de la valoarea maximă posibilă. Cert este că o astfel de verificare înseamnă: „dacă errorlevel este mai mare sau egal cu valoarea, atunci ...”. Adică dacă verificăm începând de la zero, orice valoare va fi adevărată pe prima linie, ceea ce nu este adevărat.

Aceasta este cea mai frecventă greșeală în acest tip de software.

Fișierele BAT sunt documente text cu o extensie specială. Comenzile sunt scrise în el pentru executarea lor 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 mai ușor lucrul cu linia de comandă, 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, pornind citirea automată a listei scrise sub formă de liliac. document. Această opțiune este, de asemenea, practică și convenabilă, deoarece ulterior puteți modifica ordinea, puteți completa cu procese noi de care aveți nevoie și le puteți șterge pe cele inutile.

BAT ajută la automatizarea proceselor: lansarea programelor, arhivarea, copierea de rezervă. 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 prin Notepad

Algoritmul de creație

Procesul de lucru prin Notepad nu este deloc complicat. Dacă nu ați făcut niciodată acest lucru înainte, atunci o puteți face destul de bine învățând cum să creați un fișier bat și să suplimentați comenzile în el. Să începem prin a crea. Aici, procedați strict conform algoritmului:

  1. Creați un document text, îl veți obține inițial cu extensia txt. Puteți efectua această operațiune în mai multe moduri, 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 „Nou” - „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: accesați Toate aplicațiile, apoi Standard - Windows și selectați Notepad din listă;
    • Apelaț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 comenzilor. Pentru o încercare, notați, de exemplu, „START taskmgr.exe” - lansarea managerului de activități. „START” îi spune interpretului de comenzi să pornească un program, 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ând-o după nume, punâ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 fișierului

Este mai ușor să deschideți un fișier bat făcând dublu clic pe el cu mouse-ul. A doua modalitate este să rulaț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 lucrul ulterioar cu acesta - nu este dificil să faceți acest lucru. Deschideți documentul cu un editor de text. Este convenabil să faceți acest lucru făcând clic dreapta pe fișierul bat, în meniul care se deschide, selectați „Schimbare”. „Notepad” va începe - acolo puteți edita comenzi, schimba conținutul, puteți adăuga completări.

Aplicarea Dr. Batcher

Pentru un începător care abia începe să lucreze cu interpretul de comenzi, care î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 paginile, există suport pentru marcaje, o listă de comenzi de sistem utilizate în bat, comenzile introduse sunt evidențiate.

Crearea documentelor

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

Începe Dr. Batcher.

  1. Deschideți o pagină nouă: „Fișier” - „Nou” sau faceți clic pe pictograma foaie goală din meniul „Fișier”.
  2. În caseta de dialog, faceți clic pe „Empty Batch File”.
  3. Se formează o fereastră de program, unde vor exista funcții pentru lucrul cu bat.
  4. După introducerea textului dorit, salvați.

Editare

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

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

După ce parcurgeți una dintre căile propuse, veți deschide utilitarul, fereastra va conține text în care puteți face ajustări, schimba comenzi, le completați, ștergeți cele inutile.

Fișierul 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ă pierderi inutile de timp pentru introducerea manuală a comenzilor, puteți începe procesul în orice moment, repetați-l pentru diferite programe, adăugând doar numele lor la 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.

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 a tot felul de 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; mai departe vom vedea că unele comenzi sunt executate direct de către shell. Practic, acestea sunt comenzile care servesc la controlul contextului și secvenței execuției comenzilor. Cu toate acestea, nu ne vom gândi prea profund la natura comenzilor, cel puțin nu în mod inutil. Mai important, orice program care este tehnic posibil de rulat din linia de comandă este tratat ca o comandă de către shell. Nu face distincție între comenzile „native” încorporate inițial în sistemul de operare și programele care au fost instalate deasupra acestuia.

Pentru a porni procesorul de comenzi:

    Faceți clic pe butonul start... Va fi afișat meniul principal.

    Selectați Run din meniul principal. Va fi afișată o casetă de dialog Lansarea programului.

    În caseta Deschidere, introduceți șirul cmd.

    Faceți clic pe butonul Bine... Va fi afișată o fereastră shell.

Linie de comandă și comenzi

Fereastra cochiliei arată sumbră în forma sa originală și nu este foarte convenabil pentru majoritatea oamenilor să lucreze cu ea. Este mult mai ușor să utilizați managerii de fișiere în stil Norton Commander. Acestea oferă atât un mijloc de navigare rapidă prin sistemul de fișiere, cât și o limită de timp 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 sistemului de operare. Această documentație este parțial conținută în sistemul de operare însuși. Pentru a-l accesa, utilizați comanda Ajutor... Această comandă afișează pe ecran o listă de comenzi disponibile. Pentru a obține o descriere a unei anumite comenzi, ca parametru, comanda Ajutor ar trebui indicat numele ei. Linia de comandă afișată în lista următoare afișează descrierea comenzii pentru.

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

ajutor> commands.txt

Pentru a genera un fișier cu o descriere a comenzii pentru, trebuie să dați o astfel de comandă (puteți face numele fișierului de ieșire orice doriți).

ajutor pentru> for.txt

În total, sistemele de operare moderne ale corporației Microsoft au puțin mai puțin de 80 de comenzi și este imposibil să le descriem într-un articol. Aici nu putem decât să menționăm câteva comenzi utile pentru automatizarea procesării fișierelor și să arătăm cum să le utilizăm. Aceste comenzi vor fi utilizate în următoarele exemple. Puteți clarifica oricând detaliile prin comandă Ajutor sau în referință.

copie- copierea unuia sau mai multor fisiere;

del- stergerea unuia sau mai multor fisiere;

mutare- mutarea unuia sau mai multor fișiere sau directoare;

redenumiți(abreviat ren) - redenumiți unul sau mai multe fișiere sau directoare;

xcopy- copierea unui arbore de subdirectoare;

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 specificați parametrii, specificați mai întâi sursa și apoi rezultatul. De exemplu, dacă vrem să mutăm fișierul bere.txt din catalog cutie a cataloga masa, trebuie să introducem comanda afișată în lista următoare.

muta caseta \ tabel beer.txt

În primul rând, 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. Faptul 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ă, indicăm totul, începând cu discul (sau numele rețelei computerului), de exemplu d: \ misha \ cutie \ bere.txt... Indiferent de directorul actual în momentul introducerii comenzii, calea completă va corespunde aceluiași fișier. Pentru o cale relativă, directorul curent este punctul de plecare. Cel mai simplu caz pentru o cale relativă 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 calea relativă către directorul curent, există o intrare condiționată . (punct). Pentru a scrie calea relativă către directorul care conține directorul curent, există o intrare condiționată .. (două puncte). Comanda afișată în lista următoare copiază toate fișierele din directorul curent în director vecin situat lângă el.

copie *. *. \ vecin

Fișiere de comandă

Până acum, când am dat 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 care conține comenzi (sau cel puțin o comandă). Un exemplu de fișier batch este prezentat în lista următoare. Încercați să ghiciți ce face acest fișier batch.

help copy> copy.help

ajuta la miscare> muta.ajuta

mutare * .ajutor msdos-ajutor

Dacă scopul acestui fișier rămâne un mister pentru dvs., atunci încercați să îl creați și să îl executați. Este obișnuit ca fișierele batch să primească extensia băţ... Prin aceasta, fișierele de acest tip sunt recunoscute de procesorul de comandă. Acest fișier poate fi numit de exemplu face-ajutor.bat.

Pentru a rula un fișier batch:

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

Într-un fișier batch, fiecare comandă ocupă o linie. Mai exact, există o modalitate de a plasa o comandă pe mai multe linii consecutive, pentru aceasta, imediat înainte de fiecare avans de linie, puneți caracterul „copertă” ^ ... (Fiecare copertă 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ță \ lucrări \ drafts \ surse

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

Când un fișier de comandă este executat, procesorul de comandă scanează fișierul de comandă de sus în jos de la prima linie până la ultima și execută comenzile în ordinea în care le găsește. El le execută ca un întreg 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 schimbată cu ajutorul comenzilor de control (care pot fi asociate cu o astfel de nevoie, o întrebare separată).

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

Comentarea fișierului batch și emiterea acestuia. Comenzi Echo și rem

Un fișier batch este în esență un program scris în limbajul shell-ului sistemului de operare. Textul programului ar trebui să fie prevăzut cu comentarii, astfel încât, revenind la el ceva timp mai târziu, să nu-și amintească dureros pentru ce este acest program și cum este aranjat.

Sistemul de comandă MS-DOS oferă o comandă pentru comentare rem... Aceasta este o comandă falsă care nu implică nicio acțiune, 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 batch cu comentarii este prezentat în lista următoare.

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

rem Generarea fișierelor de ajutor

help copy> copy.help

ajuta la miscare> muta.ajuta

mutare * .ajutor msdos-ajutor

Observați liniile goale care despart fișierul batch în „paragrafe”. Această tehnică simplă face 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 comenzilor poate fi dezactivată folosind comanda @echo dezactivat... Simbolul „câine” în fața comenzii ecouînseamnă că această comandă în sine trebuie executată în modul „silențios”. Am putea la fel de bine să nu folosim comanda ecoul oprit, și plasați un „câine” în fața fiecărei echipe.

În multe cazuri, este necesar ca fișierul de comandă să scoată 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, uneori formăm un alt fișier util cu fișierul batch. Aceeași comandă echo este folosită pentru afișarea mesajelor. Textul mesajului 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> muta.ajuta

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

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

mutare * .ajutor msdos-ajutor

ecou Gata!

Trecerea parametrilor la fișierul batch

Să presupunem că vrem să creăm un fișier batch care generează mai întâi un ajutor cu o descriere a unei comenzi definite de utilizator și apoi îl încarcă pentru vizualizare în notepad. Trucul este să îi spunem într-un fel ce comandă ne interesează de data viitoare când este lansat fișierul batch.

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

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 batch îi este transmis ca parametru.

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

rem al cărui nume a fost trecut de parametru

ajutor% 1> help.tmp

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

notepad help.tmp

Să presupunem că am dat numele acestui fișier batch arată-ajutor.bat... Pentru a încărca o descriere a unei comenzi în notepad, 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 un fișier cu textul de descriere a comenzii specificat în al doilea parametru.

rem Exemplu de fișier batch cu doi parametri

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

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

rem dat ca al doilea parametru

ajutor% 2>% 1 \% 2.ajutor

Ce se întâmplă dacă utilizatorul, când rulează acest fișier batch, specifică nu doi, ci patru parametri? E în regulă, nu vor interfera cu nimic, pur și simplu nu vor fi folosite. Dar dacă utilizatorul specifică doar primul parametru? Al doilea parametru va fi gol. Efectul va fi următorul: fișierul batch va fi executat, dar parcă la locul scrierii %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, este destinat să creăm un director), vom primi un mesaj de eroare de sintaxă, deoarece comanda md trebuie să aibă un parametru.

Astfel, utilizarea parametrilor creează oportunități mari, dar poate complica lucrurile în mod semnificativ. Pentru ca fișierul de comandă 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 da foc, 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 de scriere a acestei comenzi este prezentat în lista următoare.

Pentru a prelua valoarea unei variabile, plasați numele acesteia între semne de două procente, așa cum se arată mai jos.

rem Compiler pentru fișiere de ajutor în format CHM

set help_compiler = c: \ HTML Help Workshop \ hcc.exe

rem Proiectul fișierului de ajutor al modulului „Depozit”.

set store_hpj = ajutor \ surse \ magazin \ store.hpj

rem Proiectul fișierului de ajutor al modulului „Vânzări”.

set sales_hpj = ajutor \ surse \ vânzări \ vânzări.hpj

rem Compilați fișiere de ajutor

% help_compiler%% store_hpj%

% help_compiler%% sales_hpj%

Această listă arată cât de utile sunt variabilele.

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

În al doilea rând, permit evitarea repetării în textul fișierului batch a fragmentelor care se pot modifica în viitor. Imaginează-ți că am reinstalat Microsoft HTML Workshop într-un alt director. Dacă o variabilă este utilizată în fișierul de comandă pentru a scrie calea către ea, atunci va fi suficient să corectați o singură linie din fișierul de comandă, ș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 pot fi cinci sau cincisprezece dintre ele cu același succes, în funcție de numărul de fișiere de ajutor pe care dorim să le compilam. Problema nu este că este dificil să corectați manual fiecare linie (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 pornirea fișierului batch. În cele ce urmează, vorbind despre variabile, în special despre lucrul cu valorile acestora, vom ține cont și de parametrii fișierului batch, 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 ale variabilelor sunt indicate una lângă alta (sau alternându-le cu orice simbol sau șir de caractere), pentru a obține o nouă semnificație semnificativă. Un exemplu este prezentat în lista următoare.

Verificarea condițiilor și alegerea opțiunilor. Comenzi If and goto

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

Verificarea condiției este aproape o măsură necesară atunci când se creează fișiere batch care utilizează parametri. Înainte de a începe lucrul, fișierul batch, în general, trebuie să se asigure că îi este transmis setul corect de parametri. În caz contrar, există un risc mare ca acesta să fie executat incorect sau fără rezultat, iar utilizatorul va trebui doar să ghicească care este problema. Mai mult, dacă fișierul batch șterge, mută sau suprascrie orice date, atunci cu parametri incorecți, poate provoca chiar daune.

Următoarea listă arată fișierul batch deja familiar pentru compilarea fișierului de ajutor. S-a adăugat verificarea primului parametru pentru nonempty la începutul fișierului batch. Atenție la această caracteristică de sintaxă: semnul egal dublu este folosit pentru operația de comparare. Dacă primul parametru se dovedește a fi negol, se declanșează comanda goto, care „aruncă” procesorul de comandă la eticheta specificată. În acest caz, numele acestei etichete este compilat. Rețineți că acolo unde este eticheta, numele acesteia este precedat de două puncte, dar nu în comanda goto. Dacă primul parametru este gol, shell-ul avansează la următoarea linie, care afișează un mesaj de eroare. Și apoi la următorul, care îl aruncă până la sfârșitul fișierului la eticheta cu numele finalizarea.

dacă nu "% 1" == "" du-te la compilare

rem Dacă parametrul este gol, emite 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 la eticheta de finisare

rem Aceasta este o etichetă numită compile

rem Mai jos sunt comenzile de compilare

rem Calea către compilatorul fișierelor 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

set project_path = e: \ work \ projects \ help-projects

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

rem al cărui nume îl trecem în primul parametru

% help_compiler%% project_path% \% 1.hpj

rem Aceasta este o etichetă numită finish

Să recunoaștem, metoda propusă pentru verificarea unui parametru nu este cea mai de succes.

Î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. Pentru aceasta, este furnizat un cuvânt special în limbajul de comandă MS-DOS 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 deloc rele, dar este destul de incomod să depanați și să mențineți un fișier batch scris în acest stil. Prin urmare, programatorii au considerat de mult timp ramificarea necondiționată ca fiind nedorită. Mai jos este o versiune mai corectă, din punct de vedere al stilului de programare, structurată, care folosește construcția dacă... 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șierelor 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

set project_path = e: \ work \ projects \ help-projects

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

% help_compiler%% project_path% \% 1.hpj

Iată 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 descărca fișierele 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 vrea 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, 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 repetitive de același tip. Îl puteți folosi pentru a afișa numere de la unu la zece, așa cum se arată în lista următoare.

for / l %% i in (1,1,10) do echo %% i

Variabil i numit contor de bucle. Datorită particularității sintaxei comenzii pentru, numele contorului buclei trebuie să fie o literă. Mai mult, dacă scriem un fișier de comandă, atunci trebuie pus un semn de procent dublu în fața numelui contorului de bucle, dar dacă doar introducem o comandă pe linia de comandă, atunci una singură.

Logica acestei echipe este următoarea. După cuvânt în este indicat intervalul de modificare a contorului de cicluri. În această versiune a comenzii, acestea sunt trei numere: valoarea inițială a contorului, pasul de numărare, valoarea limită a contorului. Când executați o comandă, shell-ul va aloca mai întâi variabilei i sens 1 , iar apoi la fiecare pas al ciclului o va crește cu 1 pana depaseste 10 ... Evident, vor fi zece astfel de pași. Dacă am specificat numărul ca pas de numărare 2 , atunci bucla ar rula de cinci ori. La fiecare pas al buclei se execută corpul buclei, scris după cuvânt do... În exemplul prezentat, aceasta este o comandă ecou care tipărește valoarea curentă a contorului buclei.

Probabil că vă puteți gândi la o situație în care ceva de genul acesta este de fapt necesar, dar de obicei comanda pentru folosit pentru a itera și procesa fișiere. Trebuie să spun că, în cazuri destul de simple, procesarea în bloc a fișierelor se realizează folosind metacaracterele. Dacă, dorim ca toate fișierele din directorul curent să înlocuiască 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. Fișierul batch de mai jos 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 web %% i in (* .htm) do ren %% i %% ~ ni.html

Cheie / r indică o traversare a directorului site-ul webși tot interiorul lui. Dacă nu îl specificați (dar atunci nu aveți voie să specificați directorul), atunci vor fi procesate numai fișierele din directorul curent. Gama de valori ale contorului de bucle în această versiune a comenzii este setul tuturor fișierelor cu extensia .htm situat în interiorul unui director (mai precis, un arbore) site-ul web... La prima vedere, intrarea este ciudată ~ niînseamnă că din valoarea variabilei i trebuie evidențiat doar numele fișierului. Limbajul de comandă MS-DOS oferă mai mulți astfel de modificatori, de exemplu, intrarea ~ xi reprezintă extensia de fișier. Toți modificatorii sunt descriși în referința comenzii pentru.

Corpul buclei poate consta din mai multe comenzi, cuprinse între paranteze.

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

rem Afișează numele fișierului

rem Redenumiți fișierul

ren %% i %% ~ ni.html

Transferați controlul într-un alt fișier batch. Comanda de apel

Este posibil să apelați un alt fișier de comandă dintr-un fișier batch. Acest lucru se face prin comandă apel... În mod remarcabil, variabilele setate în fișierul de comandă de apelare sunt „vizibile” pentru cel apelat. Invers, dupa ce fisierul apelat isi termina de functionat si returneaza controlul apelantului, acesta din urma va "vedea" variabilele lasate acestuia de numitul "mostenit". Acest lucru permite dezvoltatorului fișierelor batch să procedeze, de exemplu, după cum urmează. Dacă mai multe fișiere batch trebuie să utilizeze aceleași valori, de exemplu, căile către unele fișiere, acestea pot fi mutate într-un fișier batch separat, care va acționa ca fișier de configurare. Fiecare fișier batch de lucru va începe cu un apel la configurația. 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 „Config”. config.bat.

rem Calea către compilatorul fișierelor 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

set project_path = 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, emite un mesaj de eroare

echo Nu există un astfel de proiect de fișier de ajutor.

rem Mai jos sunt comenzile de compilare

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

rem al cărui nume îl trecem în primul parametru

% help_compiler%% project_path% \% 1.hpj

Când lucrați pe un computer, este adesea necesar să repetați aceleași comenzi DOS pentru a efectua acțiuni executate periodic, pentru a construi o secvență complexă și pe mai multe niveluri de comenzi sau aplicații executabile, pentru a automatiza lucrul cu aplicații și fișiere cu sau fără utilizator. Sistemul de operare are capacitatea de a scrie mai multe comenzi într-un fișier bat. În același timp, pur și simplu lansând acest fișier de comandă (numit adesea script, sau pur și simplu „fișier batch”), puteți executa comenzile prescrise și, scriindu-l în evenimentele planificatorului Windows, puteți automatiza acest proces.

O caracteristică a acestui tip de fișiere este absența oricărui cod în interior - există doar informații despre ceas care sunt citite și executate de procesorul de comandă DOS, care este compatibil cu aproape toate versiunile sistemului de operare Windows. Unul dintre exemplele izbitoare este fișierul autoexec.bat, care este necesar pentru a porni acest sistem de operare, deoarece el este cel care îl configurează în timpul pornirii.

Caracteristicile de bază ale fișierelor batch

Comenzile pe care le conține fișierul bat pot fi împărțite condiționat în mai multe grupuri în funcție de funcționalitatea lor:

Proiectat pentru a afișa o anumită valoare, frază, aplicație sau informații pe ecran;
- să implementeze lansarea documentelor de lot;
- sa lucreze cu cicluri;
- să creeze execuție de ramificare folosind condiții;
- sa lucreze cu aplicatii.

Executarea fișierelor batch

Fișierele batch pot fi lansate în diferite moduri. Când lucrați în directorul curent, puteți introduce pur și simplu nume de fișiere cu sau fără parametri suplimentari. În acest caz, comenzile fișierelor bat după pornire vor fi executate secvențial una după alta, deja fără intervenția utilizatorului.

Când un fișier batch este găsit într-un alt director, trebuie să specificați calea completă către directorul în care este stocat, în plus față de numele complet al acestui fișier. Extensia de fișier poate fi, de asemenea, omisă. De exemplu, directorul curent este d:\photo\work, iar fișierul batch vera.bat, care trebuie executat cu parametrii resize.doc și /p, se află în directorul d:\photo\home. Apoi, pentru a lansa fișierul nostru, trebuie să scrieți comanda d: \ photo \ home \ vera resize.doc / p sau comanda .. \ home \ vera resize.doc / p.

Întreruperea lucrului

Comenzile bat-file executate după lansare pot fi întrerupte de combinațiile de butoane +și +... Afișajul vă va solicita să întrerupeți execuția fișierului batch cu o solicitare în așteptare Da sau Nu. Dacă introduceți Y, execuția va fi întreruptă, iar lista de comenzi rămase din fișierul bat va fi ignorată. Dacă introduceți caracterul N, atunci execuția va continua cu următoarea comandă din listă.

Apelarea unui alt fișier batch

Fișierele bat pot conține legături către execuția altor scripturi. Dacă doar scrieți un fișier bat în corpul scriptului, comenzile de după acesta nu vor fi executate, deoarece controlul este transferat într-un alt fișier batch și comenzile vor fi executate din acesta. Dacă doriți să reveniți după pornirea unui fișier intern, îl puteți apela cu comanda CALL. Formatul comenzii arată astfel: CALL batfilename [launch parameters].

Parametrii transferați fișierelor batch invocate sunt de obicei caracterele% 1 -% 9. Când comenzile fișierelor bat sunt transmise succesiv, execuția scriptului original va continua de la următoarea linie.

Execuție pas cu pas

Există momente când comenzile fișierelor bat trebuie executate pas cu pas (cu o oprire după fiecare linie). Cel mai adesea, acest mod este necesar la depanarea sau testarea scripturilor. Scrierea comenzii arată astfel: COMMAND / y / c _script name [parametri].

Când este executată, va fi emisă o solicitare Y sau N pentru fiecare comandă. Dacă trebuie să executați o comandă, apăsați tasta Enter sau Y. Dacă trebuie să omiteți o comandă, apăsați ESC sau N.

Dezactivați sau activați afișarea comenzilor pe ecran

Când fișierul bat este lansat, comenzile sunt afișate pe ecran linie cu linie înainte de a fi executate și apoi executate. Uneori, acest lucru provoacă neplăceri, deoarece cu un fișier batch mare, comenzile rulează într-o listă lungă în fața utilizatorului pe ecran și, uneori, trebuie să fie afișate, de exemplu, pentru dialog sau depanare. Pentru a afișa fișierul bat al comenzii, utilizați comanda ECHO ON. Pentru a dezactiva acest mod, introduceți ECHO cu parametrul OFF. În acest caz, toate comenzile executate în continuare nu vor mai fi afișate pe ecran.

Pentru a dezactiva ieșirea unei singure linii a fișierului batch pe ecran, puteți folosi simbolul @ de la începutul acestei linii. Cel mai adesea, acest simbol poate fi găsit împreună cu comanda @ECHO OFF pentru a preveni afișarea lui pe afișajul monitorului. Acest mod este adesea folosit de infractorii cibernetici, creând viruși pe baza fișierelor bat sau furnizând probleme minore și majore utilizatorilor de computere.

Mesaje de execuție a comenzilor

Dacă după comanda ECHO există alte caractere decât ON sau OFF, acestea vor fi afișate în orice mod. Dacă ECHO nu are parametri, atunci afișează starea modului de afișare al comenzilor executabile - pornit sau dezactivat.

Dacă doriți, puteți chiar să redați (scârțâi) computerul folosind un fișier bat. Comenzile prezentate mai jos se bazează pe instrucțiunea ECHO cu adăugarea de caractere speciale.

Pentru a reda un semnal sonor, trebuie să afișați simbolul standard cu codul 7. Puteți face acest lucru apăsând tasta și „7” pe tastatura numerică (etichetat acasă).

Pentru a îmbunătăți lizibilitatea mesajelor, puteți utiliza comanda ECHO cu parametrul „.”. (este plasat imediat dupa comanda fara spatiu) sau un caracter special cu codul 255. Pe ecran va arata ca o linie goala.

Comanda ECHO poate fi folosită pentru a trimite mesaje într-un fișier separat. Esența sa constă în redirecționarea ieșirii mesajelor către scrierea într-un fișier, și nu către ecranul monitorului. Puteți folosi bat pentru a salva jurnalele, chestionarele și pentru a înregistra evenimente. Comenzile de ieșire au următorul format:

ECHO mesaj >> nume de fișier - această comandă adaugă o linie la sfârșitul unui fișier existent. Dacă nu există un astfel de fișier în acest director, atunci este creat un fișier nou.

ECHO mesaj> nume de fișier - această comandă creează un fișier nou și scrie linia curentă în el. Dacă există un astfel de fișier în directorul curent, conținutul acestuia va fi șters și comanda sau rezultatul acestuia va fi înregistrat.

Folosind comentarii

Pentru confortul editării scripturilor, este utilizată comanda REM. Toate comenzile fișierelor bat care sunt după el sunt ignorate de Windows în timpul execuției. Ele pot fi văzute în timpul editării și în modul pas cu pas. În toate celelalte cazuri, comentariile nu vor fi afișate pe ecran.

Comandă de întârziere în fișierul bat

Uneori, în timpul executării unui fișier batch, devine necesară oprirea temporară a execuției comenzilor, de exemplu, să așteptați reacția utilizatorului, să măriți timpul de citire a unui mesaj lung, să introduceți un disc, să confirmați prezența utilizator sau pentru a depana un fișier batch. Comanda delay din fișierul bat este scrisă ca PAUSE fără parametri. În acest caz, afișajul va afișa un mesaj precum „Apăsați orice tastă pentru a continua”, iar scriptul va fi întrerupt până când butonul de la tastatură este apăsat. Dacă combinația este apăsată +sau +, atunci sistemul va interpreta acest lucru ca fiind finalizarea fișierului executabil și va emite o solicitare pentru a confirma finalizarea lucrării sale: „Întreruperea execuției fișierului batch? (D/N)". Dacă apăsați tasta Y, scriptul va fi întrerupt în acest moment și toate comenzile rămase restante vor fi ignorate. Apăsarea N va continua execuția cu următoarea comandă. Când este întrerupt, apăsând orice alte taste alfanumerice, precum și „Spațiu” și „Enter”, execuția fișierului executabil va continua cu următoarea comandă.

lista de fișiere

Pentru executarea secvențială a mai multor fișiere din lista aflată în același director, puteți utiliza și un fișier bat. Comenzile „Rulează după nume” și „Rulează după extensia fișierului” pot ajuta adesea la automatizarea procesării documentelor, cum ar fi sortarea atașamentelor de e-mail. Ele diferă în parametrii pentru comanda FOR. Formatul de scriere este prezentat mai jos:

FOR% x IN (lista de fișiere) comanda DO, unde:

X - orice caracter, cu excepția numerelor de la 0 la 9;

Listă - nume de fișiere separate prin spațiu sau numele unui singur fișier; în acest caz, puteți folosi caracterele speciale "?" și „*” pentru a înlocui de la unul la mai multe caractere în numele fișierului;

Comandă - orice comandă sau program DOS, altul decât FOR; dacă este nevoie să utilizați FOR, atunci în loc de% x trebuie să specificați %% x.

Când utilizați această comandă pentru a scrie fișiere bat, trebuie să țineți cont de faptul că numele din programele DOS au o limitare a lungimii numelui. Pentru a comuta comanda FOR să funcționeze cu nume lungi de fișiere, trebuie să vă amintiți să rulați comanda LFNFOR ON înaintea acesteia pentru a activa modul de operare cu nume lungi și LFNFOR OFF pentru a o dezactiva și a reveni la lungimea standard a fișierului.

Multe funcții cu programe, cum ar fi compararea fișierelor cu anumite tipuri de extensii dintr-un director cu fișiere de același tip dintr-un alt director, copierea tuturor fișierelor din directorul curent în altul, execuția secvențială a fișierelor cu extensii de un anumit tip și denumiri începând cu numere, se poate face doar cu o singură comandă introdusă în fișierul bat. Lansarea programului poate fi combinată cu solicitările utilizatorilor, ceea ce îmbunătățește confortul lucrului cu date.

Tranziții în fișierele bat

Pentru confortul controlului ordinii de lansare a comenzilor în fișierele bat, aceștia folosesc adesea comenzi de salt și etichete de-a lungul cărora se fac aceste tranziții.
O etichetă este orice linie dintr-un fișier executabil care începe cu două puncte. Numele etichetei este setul de caractere după două puncte până la sfârșitul rândului sau până la primul spațiu, după care restul rândului este ignorat, care poate fi folosit ca comentariu la eticheta de salt.

Comanda de salt este scrisă GOTO cu numele etichetei separate de un spațiu. Dacă nu există niciun parametru sau numele etichetei în fișierul de comandă nu este găsit, atunci scriptul nu mai funcționează la această comandă. Exemplu:

REM (rulați comenzile necesare).

În acest exemplu, execuția secvențială a fișierului batch, ajungând la GOTO zzz, trece la eticheta: zzz și continuă cu REM, ignorând orice între comanda de salt și eticheta specificată.

Condiții de utilizare atunci când lucrați cu fișiere bat

Un fișier bat poate sau nu executa comenzi în funcție de diferite condiții, dacă în el este aplicată verificarea apariției unui eveniment IF. Formatul acestei comenzi este „IF condiție comandă”.

Condiția este reprezentată de diferite variante de expresii:

ERRORLEVEL număr - în cazul în care programul executat anterior s-a încheiat cu un cod de ieșire egal sau mai mare decât valoarea numerică specificată, condiția va fi adevărată.

LINIA 1 == LINIA 2 - în cazul potrivirii complete a liniilor, condiția devine adevărată. În loc de șiruri, puteți înlocui caracterele% 0 -% 9, apoi parametrii fișierului de comandă vor fi comparați.

EXIST - nume de fișier - dacă fișierul specificat există, atunci condiția este adevărată.

NOT - condiție - dacă condiția specificată este falsă, atunci ieșirea comenzii va primi o valoare adevărată.

Comenzi folosite în fișierele bat

Dacă faceți clic pe butonul „Start” și rulați linia de comandă (cmd), puteți vedea tot ce este introdus în fișierul bat, îl puteți folosi ca instrument de depanare, ca asistent, un program pentru a obține informații despre comenzi. Pentru a face acest lucru, puteți pur și simplu să tastați HELP. În acest caz, este emisă o listă de comenzi cu scurte descrieri ale acestora. Pentru informații mai detaliate, puteți introduce HELP cu numele comenzii necesare.

Utilizarea fișierelor bat atunci când faceți copii de siguranță ale datelor

Fișierele batch fac viața mult mai ușoară administratorilor de sistem în munca lor de zi cu zi. Cele mai frecvente utilizări pentru acestea sunt crearea, ștergerea, redenumirea și multe altele. Toate acestea se bazează pe utilizarea comenzii COPY bat-file. De exemplu, puteți crea un program care face copii de arhivare ale documentelor dintr-un folder selectat cu date utilizator de anumite formate, excluzând, de exemplu, fișierele media mari, oferind o copie de rezervă într-un folder cu numele utilizatorului și numindu-l „File_copy_Command. băţ". După aceea, este necesar să se asigure lansarea acesteia la o anumită oră folosind planificatorul încorporat sau prin programul însuși și astfel să se asigure siguranța datelor utilizatorului.

Utilizarea fișierelor bat (în caz contrar - „fișier batch”, „fișier lot”) vă poate facilita adesea munca, de exemplu, automatizați instalarea software-ului, conform parametrilor predefiniti; sincronizarea datei și orei; lansarea secvențelor de comenzi și așa mai departe. Cu toate acestea, pentru a utiliza astfel de scripturi, trebuie să știți cum să le creați. Fișierele bat sunt în esență o colecție de comenzi de consolă, la fel ca cele utilizate pe linia de comandă.

Articolul discută trei metode pentru crearea fișierelor .bat:

  1. Folosind linia de comandă.
  2. Folosind programul „Notepad”.
  3. Folosind utilitarul „Dr. Batcher”.

Pasul 1. Pentru a lansa linia de comandă în meniul „Start”, utilizați dialogul „Găsiți programe și fișiere”. Trebuie să specificați parametrul de căutare cmd și să faceți clic stânga pe pictograma din secțiunea „Programe”.

Pasul 2. Este recomandat să folosiți un director separat pentru a stoca fișierele batch scrise, așa că selectați o locație pe hard disk și creați un folder special introducând comanda „MD D: \ Bat”.

Pe o notă! Comanda se introduce fara ghilimele, spatiul se pune doar dupa utilizareMD. În cazul descris, un folder numit « liliacul "va fi creat pe discD. Linia de comandă nu face distincție între majuscule și minuscule, adică rezultatul executării „MDD: \liliac ","mdD: \Liliacul „și”mdd:\Liliacul ”va fi la fel.

Pasul 3. Creați fișierul batch real folosind comanda „@echo off> D: \ Bat \ probnik.bat”.

Pe o notă!În acest caz, cazul este important când se specifică calea locației, adică folderul "liliac ","Liliacul „și”BAT ”- trei directoare independente și complet diferite. Dacă indicați un folder care nu există, comanda nu va fi executată. Vă rugăm să rețineți că nu va apărea nici un mesaj de eroare.

Pasul 4. Pentru a modifica conținutul unui fișier, deschideți locația de stocare a acestuia, deschideți meniul contextual și selectați linia „Modificare”.

Creați un fișier batch folosind Notepad

Pasul 1. Pentru a lansa Notepad, intrați în meniul Toate programele, elementul Standard și faceți clic pe pictograma de lansare.

Pasul 2.

Aflați cum să creați un fișier fără multe cunoștințe de programare din noul articol -

Ca exemplu, vă sugerăm să utilizați următorul cod care afișează imaginea unei stele:

« @echo dezactivat

mode con cols = 32 linii = 50

stea de titlu!

pentru %% i în (

88888888888888881888888888888888,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,

) face eco %% i

pauză> nul

Atenţie! Codul trebuie introdus fără ghilimele. Verificați întotdeauna sintaxa comenzii. Dacă uitați să puneți o virgulă la sfârșitul unei linii, atunci în timpul execuției programului se va îmbina cu următorul.

Pasul 3. Salvați fișierul rezultat în directorul dorit. Pentru a schimba rezoluția, folosiți linia „Tip fișier”, selectați „Toate fișierele” în ea, iar când introduceți un nume, după o perioadă, specificați „bat”.

Crearea unui fișier batch utilizând „Dr.dozator "

Produsul software specificat este plătit, dar oferă posibilitatea de a utiliza versiunea de testare timp de 30 de zile.

Pasul 1. Pentru a crea un fișier, utilizați meniul „Fișier”, elementul „Nou...” sau combinația de taste „Ctrl + N”.

Pasul 2.În caseta de dialog, bifați „Empty Batch File” și faceți clic pe „OK”.

Pasul 3. Specificați ce comenzi ar trebui să execute fișierul bat.

Pe o notă! Cadrul din dreapta conține comenzi cheie pe care le puteți folosi atunci când scrieți cod. Este suficient să îl selectați pe cel dorit și să apăsați butonul "IntroduceCommand ”, care ajută la economisirea timpului atunci când lucrați.

Pasul 4. Salvați fișierul rezultat în directorul dorit.

Important! Vă rugăm să rețineți că utilitarul specificat vă permite să depanați programul din mers. Este suficient să folosiți meniul „Lot ”pentru a începe o secvență deja introdusă. Progresul este afișat în cadrul de jos. Când utilizați elementul "A executaînExternFereastra ... ”fișierul batch va fi executat, similar lansării acestuia prin intermediul sistemului de operare.

Concluzie

Am descris trei moduri de a crea fișiere .bat. Două dintre aceste metode sunt metode standard disponibile cu Windows, una necesită instalarea unui software suplimentar. Evaluarea fiecăreia dintre metode este prezentată în tabelul rezumativ.

Informații \ NumeLinie de comandaCaietDr. Batcher
LicențăLivrare cu WindowsLivrare cu WindowsPlătit
Limba rusăÎn funcție de versiunea de WindowsÎn funcție de versiune
Creați un fișier batchdadada
Editare lot de fișiereNudada
Comoditatea interfeței (de la 1 la 5)4 4 5

Video - Creați fișier Bat

Top articole similare