Miljöfaktor

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 3 december 2019; kontroller kräver 19 redigeringar .

Miljövariabel ( eng.  miljövariabel ) är en textvariabel i operativsystemet som lagrar all information - till exempel data om systeminställningar.

UNIX miljövariabler

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 .

Windows miljövariabler

Miljövariabler ställs in i Windows-registret och av programvara. De kan användas på kommandoraden och i filutforskarens adressfält.

Klassificering

Windows miljövariabler delas in i två kategorier:

Syntax

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 :

Vissa miljövariabler

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

Lista över variabler

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.

Arbeta med variabler

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:\TEMP

Du 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].

Lost in translation

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”).

Anteckningar

  1. Miljövariabler (Windows) . msdn.microsoft.com. Hämtad 29 juni 2018. Arkiverad från originalet 29 juni 2018.