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.
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 .
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.
A Windows környezeti változók két kategóriába sorolhatók:
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 :
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 |
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. |
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:\TEMPA 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.
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”).