Sunteți pe pagina 1din 7

L3

Fiiere de comenzi (BAT) sub DOS

Un fiier de comenzi este un fisier text care conine una sau mai multe comenzi si / sau
directive care se execut succesiv, far intervenia direct a utilizatorului. Numele unui astfel de
fiier, in cazul SO DOS trebuie urmat de tipul fiierului *.bat. Un prim exemplu de fisier de
comenzi DOS este fisierul autoexec.bat, daspre care vom discuta intr-un laborator urmtor. Daca
acest fiier este prezent in directorul radcin de pe partiia de bootare a sistemului de operare,
DOS execut automat comenzile din el la fiecare incrcare a sistemului. Un fiier de comenzi
DOS conine in el mai multe tipuri de construcii:

comenzi DOS propriu-zise;

etichete;

caractere speciale: | < > si %

parametrii formali, care vor fi inlocuii la lansare cu parametrii actuali;

variabile globale rezidente in interpretorul de comenzi;

variabile locale folosite la cicli;

directive adresate interprtorului fiierelor de comenzi.

Exemplu: Fiier care listeaz fiierele cu extensia .pdf din directorul curent, le copiaz pe
dischet i apoi le terge .
Nume fisier

Continutul fisierului

muta.bat

dir *.pdf
copy *. pdf a:\
del *. pdf

O etichet se scrie sub forma:: nume, caracterul ":" fiind urmat de maximum 8 litere sau
cifre. O etichet apare (ca definitie) pe o singur linie, la inceput de rand.
Caracterele speciale | < > sunt interpretate in comenzi ca i legare in pipe a doau

comenzi, respectiv pentru redirectarea intrarii si / sau a ieirii standard a unei comenzi. Pentru a
fi interpretate ca i caractere obinuite ele trebuiesc scrise intre ghilimele. Spre exemplu, o linie
de forma; A | B este interpretat ca o succesiune a comenzilor A si B, legate in pipe. In
schimb o linie de forma: A "|" B este interpretat ca o singura comand A, care are doi
parametrii, o bara vertical | i caracterul B.
Caracterul @ plasat ca prim caracter intr-o linie are ca efect neafiarea linie pe ecran.
Linia este ins prelucrat de ctre interpretorul fiierelor de comenzi.
Caracterul % marcheaz parametrii formali , variabilele globale i variabilele locale.
In fiierul de comenzi pot aprea pana la 10 parametri formali , notai cu %0 %1 ... %9.
Corespunzator acestora in linia de comand, care lanseaz in execuie fiierul de comenzi
argumentele sunt puse in corespondent cu aceti parametri.
Variabilele globale sunt cele care au primt valori prin comanda SET. Pentru a avea acces
la ele numele lor trebuie cuprinse intre doua caractere %. Prin intermediul acestor variabile se
poate dirija anticipat aciunea unui fiier de comenzi, sau dou fiiere de comenzi pot comunica
intre ele. Spre exemplu,presupunem c s-a dat o comand: SET DEST=c:\lucru atunci intr-un
fiier de comenzi ce se lanseaz ulterior poate sa apara comanda: copy *.pdf %DEST%.

Directivele interpretorului fiierelor de comenzi


for %%variabila in (multime) do
comanda
call fisier comenzi
if [not] errorlevel n comanda
if [not] sir1=sir2 comanda
if [not] exist fiier comand
goto etichet
shift
echo [on|off|mesaj]
echo [on|off|mesaj]
pause [mesaj]

Directiva for - permite prelucrarea iterativ a unei comenzi dintr-un fiier de comenzi. %%
variabila este o variabila local de ciclare. Ea este secvenial inlocuit cu toate valorile din
mulime i apoi evaluat i executat. Daca un membru al mulimii este o expresie construit
generic (cu * si/sau ?), atunci %%variabila va fi inlocuit pe rand cu toate numele de fiier care
se potrivesc cu aceasta expresie.

Directiva call - permite apelul (lansarea in executie) a unui fiier de comenzi din altul. La
terminarea fiierului apelat controlul revine fiierului care l-a apelat. Tot aici se poate spune c
este posibil ca ultima linie a unui fiier de comenzi poate fi lansarea in execuie a unui alt fiier
de comenzi, far directiva call. In acest caz se realizeaz o inlantuire a celor dou fisiere.

Directiva goto - transfer controlul in fisierul de comenzi in linia de comand situat dup
eticheta specificat.

Directiva if - permite execuia conditionat a unei comenzi DOS din fiierul de comenzi, sau a
unei alte directive.

Ce inseamn condiia ERRORLEVEL numar? Fiecare comand DOS transmite la terminarea


ei un cod cu o valoare intre 0 si 255. De obicei un cod cu o valoare nenul indic o situaie
neobisnuit. Condiia ERRORLEVEL numar este adevarat daca codul de retur al ultimei
comenzi este mai mare sau egal cu numarul scris dupa cuvantul ERRORLEVEL.

Directiva shift - permite folosirea a mai mult de zece parametrii formali. Efectul ei este acela de
a decala parametrii formali, fcand s se piard parametrul %0, parametrul care era %1 sa devin
%0, parametrul care era %2 sa devin %1,etc.

Directiva echo
echo on - la lansarea unei linii in execuie aceasta este afiata pe ecran
echo off - la lansarea unei linii in execuie aceasta nu este afisat pe ecran, dar totui executat

echo mesaj - afiseaz pe ecran mesajul specificat


Directiva pause - afiseaz pe ecran mesajul, dac acesta este specificat, apoi suspend execuia
fiierului pan cand se apas o tasta.
Aplicatii
1. Sa se creeze un fisier bat care in urma execuiei sa-mi creeze in rdacina directorul
LABORATOR , iar in directorul LABORATOR sa-mi creeze un fiier de tip .txt cu numele SO
care s conin textul : "Aici se afl laboratorul de sisteme de operare". Fisierul creat trebuie s
fie denumit bat1.bat
Rezolvare
c:
cd\
md LABORATOR
cd LABORATOR
echo Aici se afla laboratorul de sisteme de operare > SO.txt
pause

2. S se realizeze un program care s vrifice existena fiierului SO.txt fiier care a fost
creat la punctul anterior. Fisierul trebuie s fie denumit bat2.bat
Rezolvare
@ECHO OFF
ECHO.
ECHO Ok ! Vom verifica daca ai fisierul so.txt din directorul LABORATOR
ECHO.
ECHO Apasa o tasta i i ti voi spune dac il ai.
ECHO.
PAUSE
IF EXIST c:\laborator\so.txt ECHO Da fisierul cautat exista
IF NOT EXIST c:\laborator\so.txt ECHO Nu ..fisierul cautat nu exista

PAUSE

3. Sa se realize un program (fiier bat) care s stearg structura definit anterior. Fiierul
trebuie s fie denumit bat3.bat

4. Sa se realize un program (fiier bat) care sa relizeze urmtoarea structur arborescent :


Fiierul trebuie s fie denumit bat4.bat.

Fiecare fiier trebuie s conin urmatorul text : ALFA,BETA,GAMA.

5. Se realizeze un program care s stearg structura arborescent definit anterior. Fiierul


trebuie s fie denumit bat5.bat.

6. S se realizeze um meniu care s permit restartarea sistemului de operare sau inchiderea


consolei.
Rezolvare

@echo off
:start
Cls
echo @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
echo @ Introdu numarul optiunii alese @
echo @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
echo @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
echo 1:Restart
echo 2:Inchidere consola
echo ....................................
CHOICE /C:12 /n
IF errorlevel 2 goto 2
IF errorlevel 1 goto 1
goto start
:1
Shutdown /r
pause
goto start
:2
Exit
pause
goto start
Exit

Teme de laborator:
1. S se realize un program (fisier bat) care s relizeze o structur arborescent care s
conin cel puin 4 directoare i 5 fiiere text. Fiierul trebuie s fie denumit tema1.bat.
2. S se realizeze un program (fiier bat) care s verifice dac a fost creat structura
arborescent de la punctul anterior. Fiierul trebuie s fie denumit tema2.bat.
3. Sa se realizeze un program(fisier bat) in care s folosii minim 6 comenzi dos selectabile
prin meniu (vezi aplicatia 5 laborator). Fiierul trebuie s fie denumit tema3.bat.
4. S se realizeze un program(fisier bat) in care s avei un meniu ce d posibilitatea
modificrii culorilor interfeei comand promt. Fiierul trebuie s fie denumit tema4.bat.

S-ar putea să vă placă și