Variabilă de mediu

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 3 decembrie 2019; verificările necesită 19 modificări .

Variabila de mediu ( ing.  variabilă de mediu ) este o variabilă text a sistemului de operare care stochează orice informație - de exemplu, date despre setările sistemului.

Variabile de mediu UNIX

Variabilele de mediu sunt stabilite de utilizator sau de scripturile shell. Setul inițial de variabile este stabilit de scripturile de pornire ale sistemului de operare și scripturile lansate atunci când un utilizator se conectează la sistem, în special, /etc/profileși ~/.bash_profile.

Mediul este de mare importanță în sistemele UNIX, deoarece stochează multe setări atât pentru sistemul ca întreg, cât și pentru programe individuale. O caracteristică importantă este că atunci când este creat, procesul copil primește o copie locală a mediului procesului părinte și, prin urmare, nu poate schimba direct setările globale.

Mediul este un set de perechi „nume variabilă” și „valoare variabilă”, a căror gestionare este de obicei atribuită interpretului de comenzi. Deoarece există un număr mare de interpreți, sintaxa diferă în funcție de interpretul utilizat de utilizator. Atât „nume”, cât și „valoare” sunt sensibile la majuscule, „Nume” este de obicei în majuscule, spațiile nu sunt permise.

Scripturile folosesc de obicei declarații de natură ИМЯ_ПЕРЕМЕННОЙ="значение переменной", dar sintaxa exactă depinde de interpretul utilizat.

Pentru a obține valoarea unei variabile, precedați numele acesteia cu un semn dolar. De asemenea, uneori este necesar să includeți numele între paranteze (de exemplu, în scripturi make ).

Din linia de comandă, variabilele sunt gestionate folosind export și env .

Variabile de mediu Windows

Variabilele de mediu sunt setate în registrul Windows și de software. Ele pot fi folosite pe linia de comandă și în bara de adrese a File Explorer.

Clasificare

Variabilele de mediu Windows se împart în două categorii:

Sintaxă

Accesarea unei variabile de mediu este posibilă în acest fel: %ИМЯ_ПЕРЕМЕННОЙ%. De asemenea, este posibil să extrageți o parte dintr-o variabilă dintr-o variabilă (dacă extensiile shell nu sunt dezactivate pe computer, acestea sunt activate implicit), de exemplu, imprimând diferite părți ale unei variabile VARfolosind linia de comandă Windows :

Unele variabile de mediu

Lista variabilelor de mediu Windows instalate poate fi găsită tastând la promptul de comandă: setsau făcând clic pe butonul Variabile de mediu din fila Avansat din caseta de dialog Proprietăți sistem (Computerul meu→Proprietăți).

Nume Scop Exemplu de valoare
%ALLUSERSPROFILE% Specifică calea către folder pentru documentele partajate și setările comune tuturor utilizatorilor . C:\ProgramData\
%APPDATA% Specifică calea către folderul în care sunt stocate setările unor programe ale utilizatorului curent. C:\Documents And Settings\Администратор\Application Data
%CLIENTNAME% Variabila este definită numai în mediul Remote Desktop Connection. Stochează numele computerului (%COMPUTERNAME%) al clientului de acces la distanță. MyPC
%COMMONPROGRAMFILES% Specifică calea către folderul în care sunt stocate fișierele partajate de programele instalate. C:\Program Files\Common Files
%COMPUTERNAME% Stochează numele unui computer în rețeaua locală. Начальник
%COMSPEC% Stochează calea către shell -ul Windows curent. C:\Windows\System32\cmd.exe
%HOMEDRIVE%, %SYSTEMDRIVE% Stochează numele unității de sistem. C:
%HOMEPATH%, %USERPROFILE% Stochează calea către folderul principal al utilizatorului C:\Documents And Settings\Администратор
%WINDIR% Stochează calea către folderul în care este instalat Windows C:\Windows
%SYSTEMROOT% Stochează calea către folderul de sistem (unde este stocat nucleul etc.) C:\Windows
%PROGRAMFILES% Stochează calea către folderul cu aplicațiile instalate C:\Program Files
%SESSIONNAME% Stochează numele sesiunii de utilizator. Într-o sesiune locală, valoarea este Consolă; într-o conexiune desktop la distanță folosind TCP/IP, este RDP-Tcp#<numărul sesiunii>. Console, RDP-Tcp#1

Lista de variabile

În sistemele de operare Microsoft moderne de pe platforma NT , următoarele variabile sunt utilizate pentru a obține informații despre sistem [1] ( textul îngroșat se referă la versiunile sistemelor de operare Windows care încep cu Vista (Vista/7/8/8.1/10) ) :

Nume Tip de Descriere
ALLUSERSPROFILE local Returnează locația profilului „Toți utilizatorii”. Pe Windows 7, returnează calea către folderul C:\ProgramData\ .
DATELE APLICATIEI sistemică Returnează locația implicită pentru datele aplicației. Pe Windows XP, acesta este C:\Documents and Settings\%UserName%\Application Data. Pe Windows 7 - C:\Users\%UserName%\AppData\Roaming .
CD local Specifică calea către directorul curent. Identic cu comanda CD, fără argumente.
NUMELE CLIENTULUI dinamica locala Variabila este definită numai în mediul Remote Desktop Connection. Stochează numele computerului (%COMPUTERNAME%) al clientului de acces la distanță.
CMDCMDLINE local Comanda exactă folosită pentru a rula cmd.exe curent.
CMDEXTVERSION sistemică Versiunea actualelor extensii ale procesorului de comandă.
PROGRAMFIILE COMUNE sistemică Locația directorului „Common Files” (de obicei %ProgramFiles%\Common Files).
COMMONPROGRAMFILES(x86) sistemică Locația directorului „Common Files” în Program Files (x86) pentru un sistem de operare pe 64 de biți (de obicei %ProgramFiles(x86)%\Common Files) .
NUMELE CALCULATORULUI sistemică Numele calculatorului
COMSPEC sistemică Calea către fișierul executabil shell.
DATA sistemică Returnează data curentă. Utilizează același format ca și comanda date /t. Creat de comanda Cmd.exe.
EROARELEVEL sistemică Returnează codul de eroare al ultimei comenzi utilizate. O valoare diferită de zero indică de obicei o eroare.
HOMEDRIVE sistemică Returnează numele unității stației de lucru locale asociate cu directorul principal al utilizatorului. Setați pe baza locației directorului principal. Directorul principal al utilizatorului este specificat în snap-in-ul Utilizatori și grupuri locale.
HOMEPATH sistemică Returnează calea completă către directorul principal al utilizatorului. Setați pe baza locației directorului principal. Directorul principal al utilizatorului este specificat în snap-in-ul Utilizatori și grupuri locale.
HOMESHARE sistemică Returnează calea de rețea către directorul principal partajat al utilizatorului . Setați pe baza locației directorului principal. Directorul principal al utilizatorului este specificat în snap-in-ul Utilizatori și grupuri locale.
LOCALAPPDATA sistemică Returnează locația locală implicită pentru datele aplicației (C:\Users\%UserName%\AppData\Local) .
LOGONSERVER local Numele controlerului de domeniu care a fost folosit pentru a autoriza utilizatorul curent.
NUMBER_OF_PROCESORI sistemică Numărul de procesoare din sistem (de fapt, numărul de nuclee).
OS sistemică Numele sistemului de operare. Windows XP și Windows 2000 apar ca Windows_NT.
CALE sistemică Specifică calea de căutare pentru fișierele executabile.
PATHEXT sistemică Returnează o listă de extensii de fișiere care sunt considerate executabile de sistemul de operare.
PROCESSOR_ARHITECTURE sistemică arhitectura procesorului. Opțiuni posibile: x86 , IA64 , AMD64 .
PROCESSOR_IDENTIFIER sistemică Descrierea procesorului (ortografia eronată a lui PROCESSOR_IDENTFIER este adesea găsită pe Internet - lipsește o literă).
PROCESSOR_LEVEL sistemică Numărul modelului procesorului.
PROCESSOR_REVISION sistemică Revizuirea procesorului.
PROGRAMDATE sistemică Returnează calea către directorul C:\ProgramData\ (similar cu ALLUSERSPROFILE) .
PROGRAMFIILE sistemică Calea către directorul Fișiere program .
PROGRAMFILES(x86) sistemică Calea către directorul Fișiere de program (x86) pe sistemele pe 64 de biți pentru aplicații cu arhitectură x86.
PROMPT local Returnează opțiunile liniei de comandă pentru interpretul curent. Creat de comanda Cmd.exe.
PUBLIC sistemică Pe Windows 7, returnează calea către directorul C:\Users\Public .
ALEATORIU sistemică Număr zecimal aleatoriu de la 0 la 32767. Generat de Cmd.exe.
SAFEBOOT_OPTION sistemică Există doar în modul sigur . Acesta ia valoarea tipului de mod sigur în care rulează sistemul. În modul sigur și modul sigur cu suport pentru linia de comandă , este setat la MINIMAL. În modul sigur cu suport pentru driver de rețea , este setat la Rețea.
SESSIONNAME local Stochează numele sesiunii de utilizator activ. Setați la „Consola” pentru autentificare locală, RDP-Tcp#<număr de sesiune> pentru acces de la distanță
SYSTEMDRIVE sistemică Unitatea în care se află directorul rădăcină Windows.
SYSTEMROOT sistemică Calea către directorul rădăcină Windows.
TEMP și TMP sistem și local Obține directoarele temporare implicite utilizate de aplicațiile care sunt disponibile pentru utilizatorii conectați. Unele aplicații necesită variabila TEMP, altele necesită variabila TMP. Potenţial, TEMP şi TMP pot indica directoare diferite, dar de obicei sunt aceleaşi.
TIMP sistemică Returnează ora curentă. Utilizează același format ca și comanda time /t. Creat de comanda Cmd.exe. Pentru mai multe informații despre comanda time, consultați Ora.
DOMENIU DE UTILIZATOR local Numele domeniului căruia îi aparține utilizatorul curent.
NUME DE UTILIZATOR local Numele utilizatorului curent.
PROFIL UTILIZATOR local Calea către profilul utilizatorului curent.
WINDIR sistemică Directorul în care este instalat Windows.

Lucrul cu variabile

Pentru a accesa valoarea unei variabile, trebuie să puneți un semn % înainte și după numele acesteia, de exemplu:

ecou %PROCESSOR_ARCHITECTURE%

Pentru a seta valoarea unei variabile:

SET TEMP=C:\TEMP

De asemenea, puteți lucra cu variabilele de mediu făcând clic pe butonul „Variabile de mediu” din fila „Avansat” din caseta de dialog „Proprietăți sistem” (meniul contextual al pictogramei „Computerul meu” → elementul „Proprietăți”).

De asemenea, trebuie să rețineți că, spre deosebire de sistemele UNIX, în DOS și în linia de comandă standard Windows, variabilele de mediu nu sunt moștenite de procesele care sunt pornite, ci sunt partajate. Acest lucru permite, de exemplu, returnarea rezultatelor programelor prin intermediul acestora, dar, pe de altă parte, creează posibilitatea de deteriorare sau depășire. Overflow este relevant în special pentru variabila PATH, deoarece este adesea completată atunci când rulează diferite scripturi. Când are loc o astfel de depășire, este suficientă pur și simplu repornirea interpretului de linie de comandă. Interpreții portați din sisteme UNIX (de ex. Z-shell) nu sunt afectați de această problemă.

Puteți obține valoarea unei variabile în cod folosind metoda ExpandEnvironmentStrings a obiectului COM WScript.Shell:

WScriptShell = ObjCreate("WScript.Shell") UserName = WScriptShell.ExpandEnvironmentStrings("%USERNAME%")

Trebuie remarcat faptul că setul de valori ale variabilelor de mediu este obținut de proces în momentul pornirii acestuia, toate procesele slave pe care le pornește primesc valorile variabilelor din acest set, dacă al doilea proces (independent de primul ) modifică valoarea variabilei de mediu sau creează o nouă variabilă, aceste modificări nu vor fi disponibile pentru primul proces.

Valorile variabilelor de mediu LOGONSERVER, CLIENTNAME, SESSIONNAME, APPDATA, HOMEDRIVE, HOMEPATH sunt setate atunci când o sesiune este deschisă pe baza valorilor din cheia de registry [HKEY_CURRENT_USER\Volatile Environment].

Valorile variabilelor globale de mediu precum PATH, TEMP etc. sunt stocate în ramura de registry [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment].

Pierdut în traducere

Este foarte comun să înțelegeți greșit cuvântul „mediu” în sintagma „variabile de mediu”. Neînțelegerea apare din citirea cuvântului „mediu” cu accent greșit pe prima silabă, ceea ce duce la recunoașterea acestui cuvânt ca formă a pluralului nominativ al cuvântului „mediu” (mediu). Corect este înțelegerea cuvântului „mediu” ca formă a genitivului singular al cuvântului „mediu” și pronunția cu accent pe a doua silabă.

Astfel, este incorect să spunem, de exemplu, „cu variabile de mediu” („cu variabile de mediu”), dar este corect să spunem „cu variabile de mediu” („cu variabile de mediu”).

Note

  1. Variabile de mediu (Windows) . msdn.microsoft.com. Consultat la 29 iunie 2018. Arhivat din original pe 29 iunie 2018.