Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Fisiere de comenzi

Informatica


Fisiere de comenzi

1. Inlantuirea comenzilor(generalitati)



În Unix, dar ºi, parþial, în DOS, majoritatea comenzilor folosesc aºa-numitele fiºiere standard de intrare ºi fiºiere standard de ieºire. Acestea sunt concepte abstracte care reprezintã sursa din care comenzile îºi iau datele de intrare, respectiv destinaþia în care ele scriu rezultatele. Deci comenzile citesc din intrarea standard ºi scriu în ieºirea standard. În mod normal, intrarea standard este reprezentatã de tastatura calculatorului, iar 16316b124q ieºirea standard de cãtre dispozitivul de afiºare (monitorul).

Exemplu: comanda sort (existentã atât în DOS cât ºi în UNIX) funcþioneazã dupã principiul enunþat. Dacã este apelatã fãrã nici un parametru, ea va aºtepta introducerea liniilor de text de la tastaturã (intrarea standard), pânã la introducerea caracterului ^Z urmat de Enter în MS-DOS, sau a caracterului ^D, în Unix, dupã care va sorta liniile ºi le va afiºa în ordine pe ecran (ieºirea standard).

Intrarea ºi ieºirea standard pot fi schimbate folosind operatorii de redirectare. Redirectarea "conecteazã" intrarea sau ieºirea comenzilor la un fiºier dat. Pentru redirectarea intrãrii se foloseºte operatorul '<', iar pentru redirectarea ieºirii operatorul '>'.

Exemplu: comanda urmãtoare preia liniile care trebuie sortate din fiºierul date.txt, iar rezultatele vor fi afiºate pe ecran. Se redirecteazã, deci, numai intrarea standard:

sort < date.txt

Pentru a redirecta numai ieºirea, adicã liniile de text sã fie citite de la tastaturã, dar rezultatul sã fie scris într-un fiºier, se foloseºte urmãtoarea formã:

sort > ordonat.txt

Redirectãrile se pot combina, astfel încât liniile sã fie citite dintr-un fiºier, iar rezultatul sã fie scris în altul:

sort < date.txt > ordonat.txt

Comenzile se pot ºi înlãnþui, în sensul cã ieºirea generatã de una devine intrare pentru alta. Pentru aceasta, se foloseºte operatorul '|', numit uneori operatorul pipe (conductã).

Exemplu: Comanda more realizeazã afiºarea paginã cu paginã a datelor citite din intrarea standard. O construcþie de forma:

ls | more

face ca ieºirea lui dir sã fie legatã la intrarea lui more, astfel încât, efectul va fi afiºarea paginã cu paginã a fiºierelor din directorul curent.
Se pot înlãnþui oricâte comenzi ºi, prin urmare, pentru afiºarea paginã cu paginã, ordonate alfabetic, a numelor tuturor fiºierelor din directorul curent, se foloseºte comanda:

ls | sort | more

Observaþie: Toate aceste considerente sunt valabile atât în DOS, cât ºi în UNIX.

2. Fisiere de comenzi

2.1 Fisiere de comenzi MS-DOS

Interpretorul de comenzi MS-DOS permite crearea ºi folosirea aºa-numitelor fiºiere de comenzi indirecte. Acestea sunt, de fapt, fiºiere care conþin înlãnþuiri de comenzi MS-DOS ºi directive speciale pentru executarea de cãtre interpretor a unor sarcini ceva mai complexe. Modul de realizare a acestor fiºiere seamãnã cu scrierea de programe într-un limbaj de programare.

Înainte de a trece la descrierea directivelor utilizate în fiºierele de comenzi, trebuie sã explicãm noþiunea de variabilã de mediu. Interpretorul de comenzi deþine o zonã de memorie specialã în care pot fi pãstrate diferite variabile. Aceste variabile sunt numite variabile de mediu ºi pot fi accesate prin intermediul comenzii set. Definirea unei variabile se face astfel:

set nume=valoare

atribuindu-se variabilei nume valoarea valoare. Valoarea unei variabile este întotdeauna un ºir de caractere. Pentru accesarea valorii unei astfel de variabile din interiorul fiºierelor de comenzi sau din linie de comandã se foloseºte construcþia %nume%. Iatã un scurt exemplu: fie o variabilã a cãreia dorim sã-i atribuim valoarea abcde. Acest lucru se face astfel:

set a=abcde

Pentru a afiºa valoarea acestei variabile se scrie:

echo %a%

Existã un set de variabile de mediu a cãror semnificaþie este predefinitã. De exemplu, variabila PATH descrie cãile (directoarele) în care interpretorul de comenzi cautã programele executabile atunci când utilizatorul nu precizeazã explicit locaþia la care se aflã programul pe care doreºte sã îl lanseze. Un alt exemplu este variabila DIRCMD care stocheazã parametrii pe care interpretorul îi adaugã fiecãrei comenzi dir pe care o întâlneºte. Dacã scriem set DIRCMD=/p, atunci orice comandã dir viitoare se va comporta ca ºi cum ar fi fost introdusã sub forma dir /p, deci va afiºa numele fiºierelor paginã cu paginã.

Directivele utilizabile în fiºiere de comenzi sunt:

goto etichetã

Se executã salt necondiþionat la eticheta etichetã. O etichetã este un ºir de maxim 8 caractere, precedat de ':' Exemplu:

:salt

rem ciclu infinit

goto salt

call fiºier de comenzi



Se executã fiºierul de comenzi precizat (extensia implicitã a numelui fiºierului este .bat), dupã care execuþia revine la linia de dupã call. Se poate lansa în execuþie un fiºier de comenzi fãrã a se mai reveni în fiºierul iniþial; aceasta se face scriind numele fiºierului la sfârºitul celui iniþial (pe ultima linie).

if [not] condiþie comandã

Este singura instrucþiune condiþionalã acceptatã de MS-DOS. Efectul este executarea comenzii comanda dacã a fost îndeplinitã condiþia condiþie. Condiþia poate fi:

ERRORLEVEL nr

Orice program, la terminare, poate sã returneze un numãr prin care indicã modul în care ºi-a încheiat execuþia. Acest lucru se poate realiza, de exemplu în programele scrise în C, prin apelarea funcþiei exit() cu un parametru (valoarea de returnat în sistem) sau apelând, în funcþia main(), instrucþiunea return cu parametru întreg. În MS-DOS, valoarea returnatã de programe poate fi testatã folosind ERRORLEVEL. Condiþia ERRORLEVEL nr este consideratã adevãratã dacã ERRORLEVEL este mai mare sau egalã cu nr. ERRORLEVEL va lua valoarea returnatã de ultimul program apelat.

ºir1==ºir2

Condiþia e îndeplinitã dacã ºirurile sunt egale. ªirurile nu trebuie puse între ghilimele. Iatã câteva exemple utile:

if %2 == abcde rem parametrul al doilea a fost ºirul abcde

if .%1 == . rem nu existã parametri în linia de comandã

EXIST fiºier

Testeazã dacã existã un fiºier.

for %%var in (mulþime) do comandã

Variabila var ia pe rând valorile din mulþime, la fiecare pas executându-se comandã. În comandã, fiecare apariþie a lui %%var este înlocuitã cu valoarea curentã din mulþime. Mulþimea poate conþine ºi nume globale de fiºiere, care conþin caracterele '*' sau '?'.

pause comentariu

Aºteaptã apãsarea unei taste afiºând comentariul dat.

echo on

echo off

echo text

echo on face ca fiecare linie din fiºierul de comenzi sã fie afiºatã în momentul în care e executatã. Acest efect poate fi inhibat prin echo off. Comanda echo text realizeazã afiºarea mesajului text.
Observaþii:

Orice comandã poate începe cu caracterul @, caz în care nu mai este afiºatã la execuþie, indiferent de starea setatã prin echo.

Numele fiºierelor de comenzi trebuie sã aibã extensia .bat.

Parametrii pe care fiºierul de comenzi îi primeºte în linia de comandã atunci când este lansat pot fi accesaþi folosind construcþii de tipul %nr. %1 reprezintã primul parametru, %2 al doilea º.a.m.d. pânã la %9. Dacã programul din fiºierul de comenzi are nevoie de mai mult de 9 parametri în linia de comandã, atunci se poate folosi directiva shift. Dupã primul apel al directivei shift, %1 va reprezenta al doilea parametru, %2 al treilea º.a.m.d. Fiecare nou apel al lui shift va deplasa cu o poziþie spre dreapta semnificaþia construcþiilor %nr. Deci un al doilea apel va face ca %1 sã fie al treilea parametru, iar %9 al unsprezecelea.
Exemplu: fie programul exmp.bat, apelat astfel: exmp unu doi trei. Mai jos este prezentat programul ºi efectul sãu:

@echo off
rem "Exemplu de preluare"
rem "a argumentelor "
echo %1
echo %2
set a=%3
echo %a%

C:\>exmp unu doi trei
unu
doi
trei
C:\>




Document Info


Accesari: 3196
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2025 )