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: 3074
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. 2024 )