Fisiere de comanzi

Pe scurt

Teorie

Un fisier de comanzi este un fisier ce contine o inlantuire de comenzi DOS ce trebuie executate succesiv.

Fisierele de comenzi se creaza folosind un editor de text; recomandabil se va folosi mediul Turbo Pascal.

Fisierele de comenzi vor avea obligatoriu extensia bat

Un fisier de comenzi poate contine toate comenzile ce pot fi date in mod interactiv interpretorului de comenzi.

Deoarece un fisier de comenzi este de fapt un program, avem in plus variabile, si instructiuni pentru controlul ordinii executiei instructiunlor. Aceste instructiuni sunt: goto, if, for, shift, call. Pentru informatii legate de aceste comenzi, va rugam sa cititi informatiile din Norton Guide sau din bibiografie.

Exista variabile, de tip sir de caractere, care pot fi modificate folosind comanda set. Acolo unde avem nevoie de valoarea unei variabile, vom scrie %nume-variabila%.

Un fisier de comenzi poate fi apelat cu parametrii, de ex. il puem lansa prin comanda (interactiva)

t.bat 1 a.pas
in acest exemplu primul parametru este (sirul) 1, iar al doilea este a.pas. Din interiorul fisierului de comenzi putem afla valorile parametrilor ca %1, ... , %9. Comanda shift face ca %1 sa ia valoarea lui %2, %2 valoarea lui %3 s.a.m.d., %9 luand ca valoare urmatorul parametru (al zecelea).

Iesirea unei comenzi (ceea ce ar afisa comanda respectiva pe ecran) se poate

Exercitii

1. Scrieti un fisier de comenzi care creaza un director cu numele pascal in care copiaza toate fisierele cu extensia pas din directorul curent.

Rezolvare:

mkdir pascal
copy *.pas pascal

2. Acelasi lucru, dar dand cate o comanda copy pentru fiecare fisier

Rezolvare:

Punem copierea ca instructiune la FOR:

mkdir pascal
for %%i in (*.pas) do copy %%1 pascal

3. Scrieti un program care copiaza fisierele a.txt, aa.txt, ..., aaaaaaaa.txt in directorul c:\temp; fisierul nu trebuie sa contina explicit cele 8 nume.

Rezolvare

4. Scrieti un program care copiaza fisierele date ca parametrii in directorul c:\temp

Rezolvare

5. Scrieti un fisier de comenzi care primeste cel putin 2 parametrii. primul fiind un nume de director si urmatoarele nume de fisiere, si muta fisierele date ca parametrii in directorul dat ca prim parametru. Se vor semnala eventualele erori.

6. Scrieti un fisier de comenzi care concateneaza fisierele date ca parametrii in fisierul dat ca ultim parametru. Se vor semnala eventualele erori.

7*. Scrieti un fisier de comenzi care primeste ca parametri nume de fisiere si copiaza acele fisiere ce au extensia pas in directorul c:\temp.

8. Sa se afiseze lista fisierelor din directorul curent si, recursiv, din toate subdirectoarele sale.

Observatii

  1. Numarul de parametrii cu care a fost apelat un fisier de comenzi se poate determina afland care este primul parametru ce are ca valoare sirul vid.
  2. Pentru a verifica daca un sir de caractere este numele unui director, verificam daca exista fisierul nume\NUL. Aceasta se bazeaza pe faptul ca in orice director gasim (prin testul de existenta) un fisier special cu numele NUL
  3. Un fisier vid se poate crea prin comanda copy nul nume-fis
  4. Un fisier de comenzi poate crea un alt fisier de comenzi, pe are in final sa-l lanseze in executie!


Arhitectura calculatoarelor

9 Oct 2001
Radu-Lucian LUPSA