Miljøvariabel ( eng. miljøvariabel ) er en tekstvariabel i operativsystemet, der gemmer enhver information - for eksempel data om systemindstillinger.
Miljøvariabler indstilles af brugeren eller shell-scripts. Det indledende sæt af variabler er indstillet af opstartsscripts for operativsystemet og scripts, der startes, når en bruger logger ind på systemet, især, /etc/profileog ~/.bash_profile.
Miljøet har stor betydning i UNIX-systemer, da det gemmer mange indstillinger både for systemet som helhed og for individuelle programmer. En vigtig funktion er, at den underordnede proces, når den oprettes, modtager en lokal kopi af den overordnede process miljø og kan derfor ikke ændre de globale indstillinger direkte.
Miljøet er et sæt "variabelnavn" og "variabelværdi"-par, hvis styring normalt er tildelt kommandofortolkeren. Da der er et stort antal tolke, er syntaksen forskellig afhængig af den tolk, som brugeren bruger. Både "navn" og "værdi" skelner mellem store og små bogstaver, "Navn" er normalt med store bogstaver, mellemrum er ikke tilladt.
Scripts bruger normalt venlige erklæringer ИМЯ_ПЕРЕМЕННОЙ="значение переменной", men den nøjagtige syntaks afhænger af den fortolker, der bruges.
For at få værdien af en variabel skal du foran dens navn med et dollartegn. Det er også nogle gange påkrævet at sætte navnet i parentes (for eksempel i make scripts ).
Fra kommandolinjen administreres variabler ved hjælp af eksport og env .
Miljøvariabler indstilles i Windows-registreringsdatabasen og af software. De kan bruges på kommandolinjen og i File Explorers adresselinje.
Windows -miljøvariabler falder i to kategorier:
Adgang til nogle miljøvariabler er muligt på denne måde: %ИМЯ_ПЕРЕМЕННОЙ%. Det er også muligt at udtrække en del af en variabel fra en variabel (hvis shell-udvidelserne ikke er deaktiveret på computeren, er de aktiveret som standard), for eksempel ved at udskrive forskellige dele af en variabel VARved hjælp af Windows-kommandolinjen :
Listen over installerede Windows-miljøvariabler kan findes ved at skrive ved kommandoprompten: seteller ved at klikke på knappen Miljøvariabler på fanen Avanceret i dialogboksen Systemegenskaber (Denne computer→Egenskaber).
Navn | Formål | Værdi eksempel |
---|---|---|
%ALLUSERSPROFILE% | Angiver stien til mappen for delte dokumenter og indstillinger, der er fælles for alle brugere . | C:\ProgramData\ |
%APPDATA% | Angiver stien til den mappe, hvor indstillingerne for nogle programmer for den aktuelle bruger er gemt. | C:\Documents And Settings\Администратор\Application Data |
%CLIENTNAME% | Variablen er kun defineret i Remote Desktop Connection-miljøet. Gemmer computernavnet (%COMPUTERNAME%) på fjernadgangsklienten. | MyPC |
%COMMONPROGRAMFILES% | Angiver stien til den mappe, hvor filer, der deles af installerede programmer, gemmes. | C:\Program Files\Common Files |
%COMPUTERNAME% | Gemmer navnet på en computer på det lokale netværk. | Начальник |
%COMSPEC% | Gemmer stien til den aktuelle Windows -skal . | C:\Windows\System32\cmd.exe |
%HOMEDRIVE%, %SYSTEMDRIVE% | Gemmer navnet på systemdrevet. | C: |
%HOMEPATH%, %USERPROFILE% | Gemmer stien til brugerens hjemmemappe | C:\Documents And Settings\Администратор |
%WINDIR% | Gemmer stien til den mappe, hvor Windows er installeret | C:\Windows |
%SYSTEMROOT% | Gemmer stien til systemmappen (hvor kernen er gemt osv.) | C:\Windows |
%PROGRAMFILES% | Gemmer stien til mappen med installerede programmer | C:\Program Files |
%SESSIONNAME% | Gemmer navnet på brugersessionen. I en lokal session er værdien Console; i en fjernskrivebordsforbindelse, der bruger TCP/IP, er den RDP-Tcp#<sessionsnummer>. | Console, RDP-Tcp#1 |
I moderne Microsoft -operativsystemer på NT -platformen bruges følgende variabler til at få information om systemet [1] ( tekst med fed skrift henviser til versioner af Windows-operativsystemer, der starter med Vista (Vista/7/8/8.1/10) ) :
Navn | Type | Beskrivelse |
---|---|---|
ALLBRUGERSPROFIL | lokal | Returnerer placeringen af profilen "Alle brugere". På Windows 7 returnerer stien til mappen C:\ProgramData\ . |
APPDATA | systemisk | Returnerer standardplaceringen for applikationsdata. På Windows XP er dette C:\Documents and Settings\%UserName%\Application Data. På Windows 7 - C:\Users\%UserName%\AppData\Roaming . |
CD | lokal | Angiver stien til den aktuelle mappe. Identisk med CD-kommandoen uden argumenter. |
KUNDENAVN | lokal dynamik | Variablen er kun defineret i Remote Desktop Connection-miljøet. Gemmer computernavnet (%COMPUTERNAME%) på fjernadgangsklienten. |
CMDCMDLINE | lokal | Den nøjagtige kommando, der bruges til at køre den aktuelle cmd.exe. |
CMDEXTVERSION | systemisk | Versionen af de aktuelle kommandoprocessorudvidelser. |
FÆLLES PROGRAMFILER | systemisk | Placeringen af mappen "Common Files" (normalt %ProgramFiles%\Common Files). |
FÆLLES PROGRAMFILER(x86) | systemisk | Placeringen af mappen "Common Files" i Program Files (x86) for et 64-bit OS (normalt %ProgramFiles(x86)%\Common Files) . |
COMPUTERNAVN | systemisk | Computernavn |
COMSPEC | systemisk | Sti til den eksekverbare shell-fil. |
DATO | systemisk | Returnerer den aktuelle dato. Bruger samme format som kommandoen date /t. Oprettet af kommandoen Cmd.exe. |
FEJNLIVEAU | systemisk | Returnerer fejlkoden for den sidst brugte kommando. En værdi, der ikke er nul, indikerer normalt en fejl. |
HJEMMEKØRSEL | systemisk | Returnerer drevnavnet på den lokale arbejdsstation, der er knyttet til brugerens hjemmemappe. Indstil baseret på placeringen af hovedbiblioteket. Brugerens hjemmemappe er angivet i snap-in'en Lokale brugere og grupper. |
HJEMMEPATH | systemisk | Returnerer den fulde sti til brugerens hjemmemappe. Indstil baseret på placeringen af hovedbiblioteket. Brugerens hjemmemappe er angivet i snap-in'en Lokale brugere og grupper. |
HJEMDEL | systemisk | Returnerer netværksstien til brugerens delte hjemmemappe. Indstil baseret på placeringen af hovedbiblioteket. Brugerens hjemmemappe er angivet i snap-in'en Lokale brugere og grupper. |
LOCALAPPDATA | systemisk | Returnerer den lokale standardplacering for applikationsdata (C:\Users\%UserName%\AppData\Local) . |
LOGONSERVER | lokal | Navnet på den domænecontroller, der blev brugt til at godkende den aktuelle bruger. |
NUMBER_OF_PROCESSORS | systemisk | Antallet af processorer i systemet (faktisk antallet af kerner). |
OS | systemisk | Navnet på operativsystemet. Windows XP og Windows 2000 vises som Windows_NT. |
STI | systemisk | Angiver søgestien for eksekverbare filer. |
PATHEKS | systemisk | Returnerer en liste over filtypenavne, der betragtes som eksekverbare af operativsystemet. |
PROCESSOR_ARCHITECTURE | systemisk | processor arkitektur. Mulige muligheder: x86 , IA64 , AMD64 . |
PROCESSOR_IDENTIFIER | systemisk | Beskrivelse af processoren (den fejlagtige stavning af PROCESSOR_IDENTFIER findes ofte på internettet - der mangler et bogstav). |
PROCESSOR_LEVEL | systemisk | Processor modelnummer. |
PROCESSOR_REVISION | systemisk | Processor revision. |
PROGRAMDATA | systemisk | Returnerer stien til mappen C:\ProgramData\ (ligner ALLUSERSPROFILE) . |
PROGRAMFILER | systemisk | Sti til mappen Programfiler . |
PROGRAMFILER(x86) | systemisk | Sti til mappen Program Files (x86) på 64-bit-systemer til x86-arkitekturapplikationer. |
HURTIG | lokal | Returnerer kommandolinjeindstillingerne for den aktuelle fortolker. Oprettet af kommandoen Cmd.exe. |
OFFENTLIG | systemisk | På Windows 7 returnerer stien til C:\Users\Public mappen . |
TILFÆLDIG | systemisk | Tilfældigt decimaltal fra 0 til 32767. Genereret af Cmd.exe. |
SAFEBOOT_OPTION | systemisk | Findes kun i fejlsikret tilstand . Det tager værdien af den type sikker tilstand, som systemet kører i. I fejlsikret tilstand og fejlsikret tilstand med kommandolinjesupport er den indstillet til MINIMAL. I fejlsikret tilstand med netværksdriversupport er den indstillet til netværk. |
SESSIONNAME | lokal | Gemmer navnet på den aktive brugersession. Indstil til "Konsol" for lokalt login, RDP-Tcp#<sessionsnummer> for fjernadgang |
SYSTEMDRIVE | systemisk | Drevet, hvor Windows-rodmappen er placeret. |
SYSTEMROOT | systemisk | Stien til Windows-rodmappen. |
TEMP og TMP | system og lokalt | Henter de midlertidige standardmapper, der bruges af applikationer, der er tilgængelige for loggede brugere. Nogle applikationer kræver TEMP-variablen, andre kræver TMP-variablen. Potentielt kan TEMP og TMP pege på forskellige mapper, men er normalt de samme. |
TID | systemisk | Returnerer det aktuelle tidspunkt. Bruger samme format som time /t kommandoen. Oprettet af kommandoen Cmd.exe. For mere information om tidskommandoen, se Tid. |
BRUGERDOMÆNE | lokal | Navnet på det domæne, som den aktuelle bruger tilhører. |
BRUGERNAVN | lokal | Navnet på den aktuelle bruger. |
BRUGERPROFIL | lokal | Stien til den aktuelle brugers profil. |
WINDIR | systemisk | Den mappe, hvor Windows er installeret. |
For at få adgang til værdien af en variabel skal du sætte et %-tegn før og efter dens navn, for eksempel:
ekko %PROCESSOR_ARCHITECTURE%Sådan indstiller du værdien af en variabel:
INDSTIL TEMP=C:\TEMPDu kan også arbejde med miljøvariabler ved at klikke på knappen "Miljøvariabler" på fanen "Avanceret" i dialogboksen "Systemegenskaber" (kontekstmenuen for "Denne computer"-ikonet → "Egenskaber").
Du skal også huske, at i modsætning til UNIX-systemer, i DOS og i standard Windows-kommandolinjen, arves miljøvariabler ikke af de processer, der startes, men deles. Dette giver for eksempel mulighed for at returnere resultaterne af programmer gennem dem, men skaber på den anden side mulighed for skade eller overløb. Overløb er især relevant for PATH-variablen, da den ofte suppleres, når forskellige scripts kører. Når et sådant overløb opstår, er det tilstrækkeligt at genstarte kommandolinjefortolkeren. Tolke porteret fra UNIX-systemer (f.eks. Z-shell) påvirkes ikke af dette problem.
Du kan få værdien af en variabel i kode ved hjælp af ExpandEnvironmentStrings-metoden for WScript.Shell COM-objektet:
WScriptShell = ObjCreate("WScript.Shell") Brugernavn = WScriptShell.ExpandEnvironmentStrings("%USERNAME%")Det skal bemærkes, at sættet af miljøvariableværdier opnås af processen på tidspunktet for dens opstart, alle slaveprocesser, den starter, modtager værdierne af variabler fra dette sæt, hvis den anden proces (uafhængig af den første) ) ændrer værdien af miljøvariablen eller opretter en ny variabel, vil disse ændringer ikke være tilgængelige for den første proces.
Værdierne for miljøvariablerne LOGONSERVER, CLIENTNAME, SESSIONNAME, APPDATA, HOMEDRIVE, HOMEPATH indstilles, når en session åbnes baseret på værdierne i registreringsdatabasenøglen [HKEY_CURRENT_USER\Volatile Environment].
Værdierne for globale miljøvariabler såsom PATH, TEMP osv. gemmes i registreringsdatabasen [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment].
Det er meget almindeligt at misforstå ordet "miljø" i sætningen "miljøvariabler". Misforståelser opstår ved at læse ordet "miljø" med forkert betoning på første stavelse, hvilket fører til anerkendelse af dette ord som en form for nominativ flertal af ordet "miljø" (miljø). Korrekt er forståelsen af ordet "miljø" som en form af genitiv ental af ordet "miljø" og udtale med vægt på anden stavelse.
Det er således forkert at sige for eksempel "med miljøvariabler" ("med miljøvariabler"), men det er korrekt at sige "med miljøvariabler" ("med miljøvariabler").