Fisiere BAT - laborator nr. I

1.Comenzi DOS mai des folosite:
-de lucru cu discul: diskcopy, sys, format, fdisk, chkdsk
-de lucru cu directoare: mkdir(md), chdir(cd), rmdir(rd), dir, path, subst
-de lucru cu fisiere: more, attrib, del, erase, deltree, fc, find, move, rename, sort, xcopy, copy, type, print
-eticheta de volum: label, vol
-alte comenzi: choice, edit, keyb, mode, cls, date, time, ver, echo,rem



2.Cerinte la laborator:Pentru fiecare problema se va scrie un fisier de comenzi DOS care va indeplini urmatoarele cerinte:
-fisierul de comenzi va trebui sa verifice daca apelul este corect (numarul de parametri este corespunzator) si fisierele
care trebuie tratate exista
-fisierul va rezolva problema respectiva:)
-la inceputul fisierului se va scrie in 5 randuri ca si comentarii textul problemei care se rezolva si modul (algoritmul) de rezolvare a problemei
-pe alocuri (acolo unde este necesar) se vor insera comentarii in codul sursa (a nu se abuza, insa, de aceste comentarii!!)
-la sfarsitul programului (sau in alt fisier), se va scrie o lista succinta cu cazurile de testare ale programului impreuna cu output-ul lui


3.Exemplu de program:

REM 1. Sa se scrie un fisier de comenzi care primeste ca si parametrii un nume de director
REM si o lista de fisiere. Se va creea in directorul curent un nou fisier cu numele toate.txt
REM care va include continutul tuturor fisierelor specificate in lista de parametrii si care
REM exista in directorul specificat ca si prim parametru.

REM Vom retine in variabila "d" primul parametru, adica directorul. Apoi facem un SHIFT pentru
REM a trece la urmatorul parametru. Apoi, intr-o structura repetitiva vom parcurgem restul
REM parametrilor si pentru fiecare testam existenta in directorul "d", iar in caz afirmativ
REM ii vom adauga continutul (cu TYPE) la sfarsitul fisierului toate.txt (prin redirectarea
REM iesirii standard)

@echo off
REM verificam numarul de parametrii
if "%2"=="" goto err1
REM verificam daca primul parametru e nume de director si il retinem in variabila "d"
if NOT EXIST %1\NUL goto err2
set d=%1
shift
REM parcurgem ceilalti parametrii din linia de comanda
:loop
if "%1"=="" goto sf
REM verificam daca exista %d%\%1 si in caz afirmativ il concatenam la toate.txt
if EXIST %d%\%1 type %d%\%1 >>toate.txt
shift
goto loop

:err1
echo Trebuie minim doi parametrii!
goto end
:err2
echo Primul parametru trebuie sa fie nume de director
:sf
REM afisam continutul fisierului toate.txt
type toate.txt

REM Cazuri de testare:
REM 1)C:\lab1.bat
REM Trebuie minim doi parametrii!!

REM 2)C:\lab1.bat dir1 a.txt b.txt c ex1.pas tpc.exe
REM ...se va afisa continutul fisielor din lista de parametrii care se afla in directorul dir1