Környezeti változó

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2019. december 3-án felülvizsgált verziótól ; az ellenőrzések 19 szerkesztést igényelnek .

A környezeti változó ( eng.  Environment variable ) az operációs rendszer szöveges változója , amely bármilyen információt tárol, például a rendszerbeállításokkal kapcsolatos adatokat.

UNIX környezeti változók

A környezeti változókat a felhasználó vagy a shell szkriptek állítják be. A változók kezdeti készletét az operációs rendszer indító szkriptjei és azok a szkriptek állítják be, amelyek akkor indulnak el, amikor a felhasználó bejelentkezik a rendszerbe, különösen, /etc/profileés ~/.bash_profile.

A környezetnek nagy jelentősége van a UNIX rendszerekben, mivel számos beállítást tárol mind a rendszer egészére, mind az egyes programokra vonatkozóan. Fontos jellemzője, hogy létrehozásakor az utódfolyamat megkapja a szülőfolyamat környezetének helyi másolatát, ezért nem tudja közvetlenül módosítani a globális beállításokat.

A környezet "változónév" és "változóérték" párok halmaza, amelyek kezelése általában a parancsértelmezőhöz van rendelve. Mivel nagyszámú tolmács létezik, a szintaxis a felhasználó által használt tolmácstól függően eltérő. A "név" és az "érték" is megkülönbözteti a kis- és nagybetűket, a "Név" általában nagybetűs, szóköz nem megengedett.

A szkriptek általában típusdeklarációkat használnak ИМЯ_ПЕРЕМЕННОЙ="значение переменной", de a pontos szintaxis a használt értelmezőtől függ.

Egy változó értékének meghatározásához a neve elé tegyen egy dollárjelet. Néha szükség van arra is, hogy a nevet zárójelben tegyük (például a make scripts -ben ).

A változók a parancssorból az export és az env segítségével kezelhetők .

Windows környezeti változók

A környezeti változókat a Windows rendszerleíró adatbázisában és szoftveresen állítják be. Használhatók a parancssorban és a File Explorer címsorában.

Osztályozás

A Windows környezeti változók két kategóriába sorolhatók:

Szintaxis

Egyes környezeti változók elérése a következő módon lehetséges: %ИМЯ_ПЕРЕМЕННОЙ%. Lehetőség van egy változó egy részének kinyerésére is egy változóból (ha a shell-kiterjesztések nincsenek letiltva a számítógépen, akkor alapértelmezés szerint engedélyezve vannak), például egy változó különböző részeinek kinyomtatása VARa Windows parancssorával :

Néhány környezeti változó

A telepített Windows környezeti változók listája a parancssorba való beírással érhető el: setvagy a Rendszertulajdonságok párbeszédpanel Speciális lapján (Sajátgép→Tulajdonságok) a Környezeti változók gombra kattintva.

Név Célja Értékpélda
%ALLUSERSPROFILE% Megadja a mappa elérési útját a megosztott dokumentumokhoz és az összes felhasználó számára közös beállításokhoz . C:\ProgramData\
%APPDATA% Megadja annak a mappának az elérési útját, ahol az aktuális felhasználó egyes programjainak beállításai vannak tárolva. C:\Documents And Settings\Администратор\Application Data
%CLIENTNAME% A változó csak a Remote Desktop Connection környezetben van definiálva. Tárolja a távelérési ügyfél számítógépnevét (%COMPUTERNAME%). MyPC
%COMMONPROGRAMFILES% Megadja annak a mappának az elérési útját, ahol a telepített programok által megosztott fájlok tárolásra kerülnek. C:\Program Files\Common Files
%COMPUTERNAME% Tárolja a számítógép nevét a helyi hálózaton. Начальник
%COMSPEC% Tárolja az aktuális Windows shell elérési útját. C:\Windows\System32\cmd.exe
%HOMEDRIVE%, %SYSTEMDRIVE% Tárolja a rendszermeghajtó nevét. C:
%HOMEPATH%, %USERPROFILE% Tárolja a felhasználó saját mappájának elérési útját C:\Documents And Settings\Администратор
%WINDIR% Tárolja annak a mappának az elérési útját, ahová a Windows telepítve van C:\Windows
%SYSTEMROOT% Tárolja a rendszermappa elérési útját (ahol a kernel van tárolva stb.) C:\Windows
%PROGRAMFILES% Tárolja a telepített alkalmazásokat tartalmazó mappa elérési útját C:\Program Files
%SESSIONNAME% Tárolja a felhasználói munkamenet nevét. Helyi munkamenetben az érték Konzol, távoli asztali kapcsolat esetén pedig TCP/IP protokollt használva RDP-Tcp#<munkamenet száma>. Console, RDP-Tcp#1

Változólista

A modern Microsoft operációs rendszerekben NT platformon a következő változókat használják a rendszerrel kapcsolatos információk megszerzésére [1] ( a félkövér szöveg a Windows operációs rendszerek Vista-val kezdődő verzióira vonatkozik (Vista/7/8/8.1/10) ) :

Név Típusú Leírás
ALLUSERSPROFILE helyi Visszaadja az „Összes felhasználó” profil helyét. Windows 7 rendszeren visszaadja a C:\ProgramData\ mappa elérési útját .
APP ADATOK szisztémás Az alkalmazásadatok alapértelmezett helyét adja vissza. Windows XP rendszeren ez a C:\Documents and Settings\%UserName%\Application Data. Windows 7 rendszeren - C:\Users\%UserName%\AppData\Roaming .
CD helyi Megadja az aktuális könyvtár elérési útját. Azonos a CD paranccsal, argumentumok nélkül.
ÜGYFÉL NEVE lokális dinamika A változó csak a Remote Desktop Connection környezetben van definiálva. Tárolja a távelérési ügyfél számítógépnevét (%COMPUTERNAME%).
CMDCMDLINE helyi Az aktuális cmd.exe futtatásához használt pontos parancs.
CMDEXTVERSION szisztémás A jelenlegi Command Processor Extensions verziója.
KÖZÖS PROGRAMOK szisztémás A "Common Files" könyvtár (általában %ProgramFiles%\Common Files) helye.
COMMONPROGRAMFILES (x86) szisztémás A "Common Files" könyvtár helye a Program Files-ban (x86) 64 bites operációs rendszer esetén (általában %ProgramFiles(x86)%\Common Files) .
SZÁMÍTÓGÉP NÉV szisztémás Számítógép név
COMSPEC szisztémás A shell végrehajtható fájl elérési útja.
DÁTUM szisztémás Az aktuális dátumot adja vissza. Ugyanazt a formátumot használja, mint a dátum /t parancs. A Cmd.exe parancs hozta létre.
ERRORSZINT szisztémás Az utoljára használt parancs hibakódját adja vissza. A nullától eltérő érték általában hibát jelez.
HOMEDRIVE szisztémás A felhasználó kezdőkönyvtárához társított helyi munkaállomás meghajtónevét adja vissza. Állítsa be a főkönyvtár helye alapján. A felhasználó kezdőkönyvtárát a Helyi felhasználók és csoportok beépülő modul határozza meg.
HOMEPATH szisztémás Visszaadja a teljes elérési utat a felhasználó kezdőkönyvtárához. Állítsa be a főkönyvtár helye alapján. A felhasználó kezdőkönyvtárát a Helyi felhasználók és csoportok beépülő modul határozza meg.
HOMESHARE szisztémás Visszaadja a hálózati elérési utat a felhasználó megosztott kezdőkönyvtárához. Állítsa be a főkönyvtár helye alapján. A felhasználó kezdőkönyvtárát a Helyi felhasználók és csoportok beépülő modul határozza meg.
LOCALAPPDATA szisztémás Az alkalmazásadatok alapértelmezett helyi helyét adja vissza (C:\Users\%UserName%\AppData\Local) .
LOGONSERVER helyi Az aktuális felhasználó engedélyezésére használt tartományvezérlő neve.
NUMBER_OF_PROCESSORS szisztémás A processzorok száma a rendszerben (valójában a magok száma).
OS szisztémás Az operációs rendszer neve. A Windows XP és a Windows 2000 Windows_NT néven jelenik meg.
PÁLYA szisztémás Meghatározza a végrehajtható fájlok keresési útvonalát.
PATHEXT szisztémás Az operációs rendszer által végrehajthatónak ítélt fájlkiterjesztések listáját adja vissza.
PROCESSOR_ARCHITECTURE szisztémás processzor architektúra. Lehetséges opciók: x86 , IA64 , AMD64 .
PROCESSOR_IDENTIFIER szisztémás A processzor leírása (a PROCESSOR_IDENTFIER hibás írásmódja gyakran megtalálható az interneten - egy betű hiányzik).
PROCESSOR_LEVEL szisztémás Processzor modellszáma.
PROCESSOR_REVISION szisztémás Processzor felülvizsgálata.
PROGRAM ADATOK szisztémás Visszaadja a C:\ProgramData\ könyvtár elérési útját (hasonlóan az ALLUSERSPROFILE-hoz) .
PROGRAM FÁJLOK szisztémás A Program Files könyvtár elérési útja .
PROGRAMFILES (x86) szisztémás Útvonal a Program Files (x86) könyvtárhoz 64 bites rendszereken x86 architektúra alkalmazásokhoz.
GYORS helyi Az aktuális értelmező parancssori beállításait adja vissza. A Cmd.exe parancs hozta létre.
NYILVÁNOS szisztémás Windows 7 rendszeren visszaadja a C:\Users\Public könyvtár elérési útját .
VÉLETLEN szisztémás Véletlenszerű decimális szám 0 és 32767 között. A Cmd.exe által generált.
SAFEBOOT_OPTION szisztémás Csak csökkentett módban létezik . A csökkentett mód típusának értékét veszi fel, amelyben a rendszer fut. Csökkentett módban és Csökkentett módban a parancssori támogatással MINIMÁLIS értékre van állítva. Csökkentett módban hálózati illesztőprogram -támogatással hálózatra van állítva.
SESSIONNAME helyi Tárolja az aktív felhasználói munkamenet nevét. Állítsa „Console” értékre a helyi bejelentkezéshez, az RDP-Tcp#<munkamenet száma> távoli eléréshez
SYSTEMDRIVE szisztémás A meghajtó, ahol a Windows gyökérkönyvtára található.
SYSTEMROOT szisztémás A Windows gyökérkönyvtárának elérési útja.
TEMP és TMP rendszer és helyi Lekéri a bejelentkezett felhasználók számára elérhető alkalmazások által használt alapértelmezett ideiglenes könyvtárakat. Egyes alkalmazások a TEMP változót, mások a TMP változót igénylik. Lehetséges, hogy a TEMP és a TMP különböző könyvtárakra mutathat, de általában ugyanaz.
IDŐ szisztémás Az aktuális időt adja vissza. Ugyanazt a formátumot használja, mint a time /t parancs. A Cmd.exe parancs hozta létre. Az idő paranccsal kapcsolatos további információkért lásd: Idő.
USERDOMAIN helyi Annak a tartománynak a neve, amelyhez az aktuális felhasználó tartozik.
FELHASZNÁLÓNÉV helyi Az aktuális felhasználó neve.
FELHASZNÁLÓI PROFIL helyi Az aktuális felhasználói profil elérési útja.
WINDIR szisztémás A könyvtár, ahová a Windows telepítve van.

Munka változókkal

Egy változó értékének eléréséhez % jelet kell tenni a neve elé és mögé, például:

echo %PROCESSOR_ARCHITECTURE%

Egy változó értékének beállítása:

SET TEMP=C:\TEMP

A környezeti változókkal úgy is dolgozhat, hogy a "Rendszer tulajdonságai" párbeszédpanel "Speciális" lapján a "Környezeti változók" gombra kattint (a "Sajátgép" ikon helyi menüje → "Tulajdonságok" elem).

Ne feledje azt is, hogy a UNIX rendszerekkel ellentétben a DOS-ban és a szabványos Windows parancssorban a környezeti változókat nem öröklik az elindított folyamatok, hanem megosztják. Ez lehetővé teszi például a programok eredményeinek rajtuk keresztül történő visszaküldését, másrészt viszont megteremti a sérülés vagy túlcsordulás lehetőségét. A túlcsordulás különösen fontos a PATH változónál, mivel gyakran kiegészül, amikor különböző szkriptek futnak. Ilyen túlcsordulás esetén elegendő a parancssori értelmező újraindítása. A UNIX rendszerekről (pl. Z-shell) átvitt tolmácsokat ez a probléma nem érinti.

A változó értékét kódban a WScript.Shell COM objektum ExpandEnvironmentStrings metódusával kaphatja meg:

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

Megjegyzendő, hogy a környezeti változók értékkészletét a folyamat az indításkor kapja meg, minden általa elindított szolga folyamat ebből a halmazból kapja a változók értékeit, ha a második folyamat (függetlenül az elsőtől ) megváltoztatja a környezeti változó értékét, vagy új változót hoz létre, ezek a változtatások nem lesznek elérhetők az első folyamat számára.

A LOGONSERVER, CLIENTNAME, SESSIONNAME, APPDATA, HOMEDRIVE, HOMEPATH környezeti változók értéke a munkamenet megnyitásakor a [HKEY_CURRENT_USER\Volatile Environment] beállításkulcsban található értékek alapján történik.

A globális környezeti változók, például a PATH, TEMP stb. értékeit a rendszerleíró adatbázis [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment] ága tárolja.

Elveszett a fordításban

Nagyon gyakran félreértik a „környezet” szót a „környezeti változók” kifejezésben. A félreértés abból adódik, hogy a „környezet” szót az első szótag helytelen hangsúlyozásával olvassuk, ami ahhoz vezet, hogy ezt a szót a „környezet” (környezet) szó többes számú névelő alakjaként ismerjük fel. Helyes a „környezet” szó értelmezése a „környezet” szó egyes számú genitív alakjaként és a kiejtés, a második szótagra helyezve a hangsúlyt.

Így például helytelen azt mondani, hogy „környezeti változókkal” („környezeti változókkal”), de helyes azt mondani, hogy „környezeti változókkal” („környezeti változókkal”).

Jegyzetek

  1. Környezeti változók (Windows) . msdn.microsoft.com. Letöltve: 2018. június 29. Az eredetiből archiválva : 2018. június 29.