Miljövariabel ( eng. miljövariabel ) är en textvariabel i operativsystemet som lagrar all information - till exempel data om systeminställningar.
Miljövariabler ställs in av användaren eller skalskripten. Den initiala uppsättningen av variabler ställs in av operativsystemets startskript och skript som lanseras när en användare loggar in på systemet, /etc/profileoch ~/.bash_profile.
Miljön har stor betydelse i UNIX-system, eftersom den lagrar många inställningar både för systemet som helhet och för enskilda program. En viktig funktion är att när den skapas får den underordnade processen en lokal kopia av den överordnade processens miljö och kan därför inte direkt ändra de globala inställningarna.
Miljön är en uppsättning "variabelnamn" och "variabelvärde"-par, vars hantering vanligtvis tilldelas kommandotolken. Eftersom det finns ett stort antal tolkar skiljer sig syntaxen beroende på vilken tolk som används av användaren. Både "namn" och "värde" är skiftlägeskänsliga, "Namn" är vanligtvis versaler, mellanslag är inte tillåtna.
Skript använder vanligtvis typdeklarationer ИМЯ_ПЕРЕМЕННОЙ="значение переменной", men den exakta syntaxen beror på vilken tolk som används.
För att få värdet på en variabel, föregå dess namn med ett dollartecken. Det krävs också ibland att namnet anges inom parentes (till exempel i make scripts ).
Från kommandoraden hanteras variabler med export och env .
Miljövariabler ställs in i Windows-registret och av programvara. De kan användas på kommandoraden och i filutforskarens adressfält.
Windows miljövariabler delas in i två kategorier:
Det är möjligt att komma åt någon miljövariabel på detta sätt: %ИМЯ_ПЕРЕМЕННОЙ%. Det är också möjligt att extrahera en del av en variabel från en variabel (om skaltilläggen inte är inaktiverade på datorn är de aktiverade som standard), till exempel att skriva ut olika delar av en variabel VARmed hjälp av Windows-kommandoraden :
Listan över installerade Windows-miljövariabler kan hittas genom att skriva vid kommandotolken: seteller genom att klicka på knappen Miljövariabler på fliken Avancerat i dialogrutan Systemegenskaper (Den här datorn→ Egenskaper).
namn | Ändamål | Värdeexempel |
---|---|---|
%ALLUSERSPROFILE% | Anger sökvägen till mappen för delade dokument och inställningar som är gemensamma för alla användare . | C:\ProgramData\ |
%APPDATA% | Anger sökvägen till mappen där inställningarna för vissa program för den aktuella användaren lagras. | C:\Documents And Settings\Администратор\Application Data |
%CLIENTNAME% | Variabeln definieras endast i Remote Desktop Connection-miljön. Lagrar datornamnet (%COMPUTERNAME%) för fjärråtkomstklienten. | MyPC |
%COMMONPROGRAMFILES% | Anger sökvägen till mappen där filer som delas av installerade program lagras. | C:\Program Files\Common Files |
%COMPUTERNAME% | Lagrar namnet på en dator i det lokala nätverket. | Начальник |
%COMSPEC% | Lagrar sökvägen till det aktuella Windows -skalet . | C:\Windows\System32\cmd.exe |
%HOMEDRIVE%, %SYSTEMDRIVE% | Lagrar namnet på systemenheten. | C: |
%HOMEPATH%, %USERPROFILE% | Lagrar sökvägen till användarens hemmapp | C:\Documents And Settings\Администратор |
%WINDIR% | Lagrar sökvägen till mappen där Windows är installerat | C:\Windows |
%SYSTEMROOT% | Lagrar sökvägen till systemmappen (där kärnan är lagrad, etc.) | C:\Windows |
%PROGRAMFILES% | Lagrar sökvägen till mappen med installerade applikationer | C:\Program Files |
%SESSIONNAME% | Lagrar namnet på användarsessionen. I en lokal session är värdet Console, i en fjärrskrivbordsanslutning som använder TCP/IP är det RDP-Tcp#<sessionsnummer>. | Console, RDP-Tcp#1 |
I moderna Microsoft- operativsystem på NT- plattformen används följande variabler för att få information om systemet [1] ( text i fet stil hänvisar till versioner av Windows-operativsystem som börjar med Vista (Vista/7/8/8.1/10) ) :
namn | Sorts | Beskrivning |
---|---|---|
ANVÄNDARPROFIL | lokal | Returnerar platsen för profilen "Alla användare". I Windows 7, returnerar sökvägen till mappen C:\ProgramData\ . |
APPLIKATIONSDATA | systemisk | Returnerar standardplatsen för programdata. På Windows XP är detta C:\Documents and Settings\%UserName%\Application Data. På Windows 7 - C:\Users\%UserName%\AppData\Roaming . |
CD | lokal | Anger sökvägen till den aktuella katalogen. Identisk med CD-kommandot utan argument. |
KUNDNAMN | lokal dynamik | Variabeln definieras endast i Remote Desktop Connection-miljön. Lagrar datornamnet (%COMPUTERNAME%) för fjärråtkomstklienten. |
CMDCMDLINE | lokal | Det exakta kommandot som används för att köra den aktuella cmd.exe. |
CMDEXTVERSION | systemisk | Versionen av de nuvarande kommandoprocessortilläggen. |
GEMENSAMMA PROGRAMFILER | systemisk | Platsen för katalogen "Common Files" (vanligtvis %ProgramFiles%\Common Files). |
VANLIGA PROGRAMFILER(x86) | systemisk | Platsen för katalogen "Common Files" i Program Files (x86) för ett 64-bitars operativsystem (vanligtvis %ProgramFiles(x86)%\Common Files) . |
DATORNAMN | systemisk | Datornamn |
COMSPEC | systemisk | Sökväg till den körbara skalfilen. |
DATUM | systemisk | Returnerar det aktuella datumet. Använder samma format som kommandot date /t. Skapat av kommandot Cmd.exe. |
FELNIVÅ | systemisk | Returnerar felkoden för det senast använda kommandot. Ett värde som inte är noll indikerar vanligtvis ett fel. |
HEMKÖR | systemisk | Returnerar enhetsnamnet för den lokala arbetsstationen som är kopplad till användarens hemkatalog. Ställ in baserat på platsen för huvudkatalogen. Användarens hemkatalog anges i snapin-modulen Lokala användare och grupper. |
HEMPATH | systemisk | Returnerar hela sökvägen till användarens hemkatalog. Ställ in baserat på platsen för huvudkatalogen. Användarens hemkatalog anges i snapin-modulen Lokala användare och grupper. |
DELA HEM | systemisk | Returnerar nätverkssökvägen till användarens delade hemkatalog. Ställ in baserat på platsen för huvudkatalogen. Användarens hemkatalog anges i snapin-modulen Lokala användare och grupper. |
LOCALAPPDATA | systemisk | Returnerar den lokala standardplatsen för programdata (C:\Users\%UserName%\AppData\Local) . |
LOGONSERVER | lokal | Namnet på den domänkontrollant som användes för att auktorisera den aktuella användaren. |
NUMBER_OF_PROCESSORS | systemisk | Antalet processorer i systemet (faktiskt antalet kärnor). |
OS | systemisk | Namnet på operativsystemet. Windows XP och Windows 2000 visas som Windows_NT. |
VÄG | systemisk | Anger sökvägen för körbara filer. |
PATHEXT | systemisk | Returnerar en lista över filtillägg som anses körbara av operativsystemet. |
PROCESSOR_ARCHITECTURE | systemisk | processorarkitektur. Möjliga alternativ: x86 , IA64 , AMD64 . |
PROCESSOR_IDENTIFIER | systemisk | Beskrivning av processorn (den felaktiga stavningen av PROCESSOR_IDENTFIER finns ofta på Internet - en bokstav saknas). |
PROCESSOR_LEVEL | systemisk | Processorns modellnummer. |
PROCESSOR_REVISION | systemisk | Processorrevision. |
PROGRAMDATA | systemisk | Returnerar sökvägen till katalogen C:\ProgramData\ (liknande ALLUSERSPROFILE) . |
PROGRAM FILER | systemisk | Sökväg till Program Files- katalogen . |
PROGRAMFILER(x86) | systemisk | Sökväg till katalogen Program Files (x86) på 64-bitarssystem för x86-arkitekturapplikationer. |
PROMPT | lokal | Returnerar kommandoradsalternativen för den aktuella tolken. Skapat av kommandot Cmd.exe. |
OFFENTLIG | systemisk | I Windows 7, returnerar sökvägen till katalogen C:\Users\Public . |
SLUMPMÄSSIG | systemisk | Slumpmässigt decimaltal från 0 till 32767. Genereras av Cmd.exe. |
SAFEBOOT_OPTION | systemisk | Finns endast i felsäkert läge . Det tar värdet av den typ av säkert läge som systemet körs i. I felsäkert läge och felsäkert läge med kommandoradsstöd är den inställd på MINIMAL. I felsäkert läge med stöd för nätverksdrivrutiner är den inställd på Nätverk. |
SESSIONNAME | lokal | Lagrar namnet på den aktiva användarsessionen. Ställ in på "Konsoll" för lokal inloggning, RDP-Tcp#<sessionsnummer> för fjärråtkomst |
SYSTEMDRIVE | systemisk | Enheten där Windows rotkatalog finns. |
SYSTEMROOT | systemisk | Sökvägen till Windows rotkatalog. |
TEMP och TMP | system och lokalt | Hämtar de tillfälliga standardkatalogerna som används av applikationer som är tillgängliga för inloggade användare. Vissa applikationer kräver TEMP-variabeln, andra kräver TMP-variabeln. Potentiellt kan TEMP och TMP peka på olika kataloger, men är vanligtvis samma. |
TID | systemisk | Returnerar aktuell tid. Använder samma format som kommandot time /t. Skapat av kommandot Cmd.exe. För mer information om tidskommandot, se Tid. |
ANVÄNDARDOMÄN | lokal | Namnet på den domän som den aktuella användaren tillhör. |
ANVÄNDARNAMN | lokal | Namnet på den aktuella användaren. |
ANVÄNDARPROFIL | lokal | Sökvägen till den aktuella användarens profil. |
WINDIR | systemisk | Mappen där Windows är installerat. |
För att komma åt värdet på en variabel måste du sätta ett %-tecken före och efter dess namn, till exempel:
eko %PROCESSOR_ARCHITECTURE%Så här ställer du in värdet på en variabel:
SET TEMP=C:\TEMPDu kan också arbeta med miljövariabler genom att klicka på knappen "Miljövariabler" på fliken "Avancerat" i dialogrutan "Systemegenskaper" (sammanhangsmeny för "Den här datorn"-ikonen → "Egenskaper").
Du måste också komma ihåg att, till skillnad från UNIX-system, i DOS och i standardkommandoraden i Windows ärvs miljövariabler inte av de processer som startas, utan delas. Detta gör det till exempel möjligt att returnera resultaten av program genom dem, men skapar å andra sidan möjligheten för skada eller översvämning. Overflow är särskilt relevant för PATH-variabeln, eftersom den ofta kompletteras när olika skript körs. När ett sådant spill inträffar räcker det med att starta om kommandoradstolken. Tolkar porterade från UNIX-system (t.ex. Z-shell) påverkas inte av detta problem.
Du kan få värdet av en variabel i kod med ExpandEnvironmentStrings-metoden för WScript.Shell COM-objektet:
WScriptShell = ObjCreate("WScript.Shell") UserName = WScriptShell.ExpandEnvironmentStrings("%USERNAME%")Det bör noteras att uppsättningen av miljövariabelvärden erhålls av processen vid tidpunkten för dess start, alla slavprocesser som den startar får värdena för variabler från denna uppsättning, om den andra processen (oberoende av den första ) ändrar värdet på miljövariabeln eller skapar en ny variabel, dessa ändringar kommer inte att vara tillgängliga för den första processen.
Värdena för miljövariablerna LOGONSERVER, CLIENTNAME, SESSIONNAME, APPDATA, HOMEDRIVE, HOMEPATH ställs in när en session öppnas baserat på värdena i registernyckeln [HKEY_CURRENT_USER\Volatile Environment].
Värdena för globala miljövariabler som PATH, TEMP etc. lagras i registergrenen [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment].
Det är mycket vanligt att man missförstår ordet "miljö" i frasen "miljövariabler". Missförstånd uppstår när man läser ordet "miljö" med fel betoning på första stavelsen, vilket leder till erkännande av detta ord som en form av nominativ plural av ordet "miljö" (miljö). Korrekt är förståelsen av ordet "miljö" som en form av genitiv singular för ordet "miljö" och uttal med betoning på andra stavelsen.
Det är alltså felaktigt att säga till exempel ”med miljövariabler” (”med miljövariabler”), men det är korrekt att säga ”med miljövariabler” (”med miljövariabler”).