Miljøvariabel - Environment variable

En miljøvariabel er en dynamisk navngitt verdi som kan påvirke måten prosesser vil kjøre på på en datamaskin. De er en del av miljøet der en prosess kjøres. For eksempel kan en kjørende prosess spørre verdien til TEMP -miljøvariabelen for å finne et passende sted for å lagre midlertidige filer , eller HOME- eller USERPROFILE -variabelen for å finne katalogstrukturen som eies av brukeren som kjører prosessen.

De ble introdusert i sin moderne form i 1979 med versjon 7 Unix , så er inkludert i alle Unix -operativsystemsmaker og varianter fra det tidspunktet, inkludert Linux og macOS . Fra PC DOS 2.0 i 1982 har alle etterfølgende Microsoft -operativsystemene, inkludert Microsoft Windows og OS/2, også inkludert dem som en funksjon, men med noe annen syntaks, bruk og standard variabelnavn.

Design

I alle Unix- og Unix-lignende systemer, så vel som på Windows, har hver prosess sitt eget separate sett med miljøvariabler . Som standard, når en prosess opprettes, arver den et duplikat kjøretidsmiljø av sin overordnede prosess, bortsett fra eksplisitte endringer som gjøres av forelder når den oppretter barnet. På API -nivå må disse endringene utføres mellom kjøring forkog exec. Alternativt, fra kommandoskjell som bash , kan en bruker endre miljøvariabler for en bestemt kommandokalling ved indirekte å påberope den via enveller bruke ENVIRONMENT_VARIABLE=VALUE <command>notasjonen. Et program som kjører kan få tilgang til verdiene til miljøvariabler for konfigurasjonsformål.

Shell -skript og batchfiler bruker miljøvariabler for å kommunisere data og preferanser til underordnede prosesser . De kan også brukes til å lagre midlertidige verdier for referanse senere i et skallskript. I Unix foretrekkes imidlertid ikke-eksporterte variabler for dette, da de ikke lekker utenfor prosessen.

I Unix vil en miljøvariabel som endres i et skript eller et kompilert program bare påvirke prosessen og muligens underordnede prosesser. Den overordnede prosessen og eventuelle ikke -relaterte prosesser vil ikke bli påvirket. På samme måte vil endring eller fjerning av en variabels verdi i en DOS -batchfil endre variabelen så lenge COMMAND.COMden eksisterer.

I Unix initialiseres miljøvariablene normalt under systemoppstart av system init -oppstartsskriptene , og arves derfor av alle andre prosesser i systemet. Brukere kan, og gjør det ofte, ved å utvide dem i profilskriptet for kommandoskallet de bruker. I Microsoft Windows er hver miljøvariabels standardverdi lagret i Windows -registret eller angitt i AUTOEXEC.BATfilen.

Unix får et setuid -program et miljø valgt av den som ringer, men det kjører med annen autoritet enn den som ringer. Den dynamiske linker vil vanligvis laste kode fra steder som er angitt av miljøvariabler $LD_LIBRARY_PATHog $LD_PRELOADog kjøre den med prosessen autoritet. Hvis et setuid -program gjorde dette, ville det være usikkert, fordi oppringeren kunne få det til å kjøre vilkårlig kode og dermed misbruke autoriteten. Av denne grunn opphever libc disse miljøvariablene ved oppstart i en setuid -prosess. setuid -programmer deaktiverer vanligvis ukjente miljøvariabler og sjekker andre eller setter dem til rimelige verdier.

Generelt fungerer samlingen av miljøvariabler som en assosiativ matrise der både nøklene og verdiene er strenger. Tolkningen av tegn i begge strenger er forskjellig fra system til system. Når datastrukturer som lister må representeres, er det vanlig å bruke et kolon (vanlig på Unix og Unix-lignende) eller semikolon-deliminert (vanlig på Windows og DOS) -liste.

Syntaks

Variablene kan brukes både i skript og på kommandolinjen . De refereres vanligvis til ved å sette spesielle symboler foran eller rundt variabelnavnet.

Det er vanlig at miljøvariabelnavn velges i store bokstaver. I programmeringskoden bidrar det generelt til å skille miljøvariabler fra andre typer navn i koden. På Unix-lignende operativsystemer er miljøvariabelnavn store og små bokstaver, men de er ikke på DOS, OS/2 og Windows.

Unix

I de fleste Unix- og Unix-lignende kommandolinjeskall hentes en miljøvariabels verdi ved å plassere et $tegn foran variabelens navn. Om nødvendig kan navnet også være omgitt av seler.

For å vise brukerens hjemmekatalog kan brukeren skrive:

echo $HOME

Hvis det er xyznødvendig å føye til verdien av HOMEvariabelen, kan man skrive:

echo ${HOME}xyz

I Unix og Unix-lignende systemer er navnene på miljøvariabler store og små bokstaver.

Kommandoen envviser alle miljøvariabler og deres verdier. Kommandoen printenvkan også brukes til å skrive ut en enkelt variabel ved å gi variabelnavnet som det eneste argumentet til kommandoen.

DOS, OS/2 og Windows

I kommandolinjetolker i DOS, OS/2 og Windows, for eksempel COMMAND.COMog cmd.exe, hentes en miljøvariabel ved å plassere et %tegn før og etter det.

Miljøvariabelen som heter HOMEDRIVEinneholder stasjonsbokstaven (pluss dens etterfølgende :kolon) i brukerens hjemmekatalog, mens den HOMEPATHinneholder hele banen til brukerens hjemmekatalog i den stasjonen.

Så for å se hjemmestasjonen og banen, kan brukeren skrive dette:

echo %homedrive%%homepath%

I kommandolinjetolker i DOS, OS/2 og Windows skilles det ikke mellom store og små bokstaver for miljøvariabelnavn.

Kommandoen set(uten argumenter) viser alle miljøvariabler og deres verdier. setkan også brukes til å skrive ut alle variabler hvis navn begynner med et gitt prefiks ved å gi prefikset som det eneste argumentet til kommandoen.

I Windows PowerShell kan brukeren skrive dette:

echo $env:homedrive$env:homepath

eller ved å bruke PowerShells opprinnelige kommandonavn som tilsvarer echo:

Write-Output $env:homedrive$env:homepath

I PowerShell skilles det ikke mellom store og små bokstaver for miljøvariabelnavn.

Følgende kommando viser alle miljøvariabler og deres verdier:

get-childitem env:

Oppgave: Unix

Kommandoene envog setkan brukes til å angi miljøvariabler og blir ofte innlemmet direkte i skallet.

Følgende kommandoer kan også brukes, men er ofte avhengige av et bestemt skall.

VARIABLE=value         #
export VARIABLE        # for Bourne and related shells
export VARIABLE=value  # for ksh, bash, and related shells
setenv VARIABLE value  # for csh and related shells

Noen enkle prinsipper styrer hvordan miljøvariabler oppnår sin effekt.

Miljøvariabler er lokale for prosessen de ble angitt i. Hvis to skallprosesser oppstår og verdien av en miljøvariabel endres i den ene, vil den endringen ikke bli sett av den andre.

Når en barneprosess opprettes, arver den alle miljøvariablene og deres verdier fra den overordnede prosessen. Vanligvis, når et program kaller et annet program, oppretter det først en barneprosess ved forgaffel , deretter justerer barnet miljøet etter behov og til slutt erstatter barnet seg selv med programmet som skal kalles. Denne prosedyren gir det oppringende programmet kontroll over miljøet til det oppkalte programmet.

I Unix -skall kan variabler tilordnes uten exportnøkkelordet. Variabler definert på denne måten vises av setkommandoen, men er ikke sanne miljøvariabler, ettersom de bare lagres av skallet og er ukjente for alle andre prosesser. Den printenvkommandoen vil ikke vise dem, og barn prosesser ikke arve dem.

VARIABLE=value

Prefiks -syntaksen eksporterer en "sann" miljøvariabel til en underordnet prosess uten å påvirke den nåværende prosessen:

VARIABLE=value program_name [arguments]

Utholdenheten til en miljøvariabel kan være sesjonsomfattende eller systemomfattende.

unseter et innebygd kommando implementert av både den Bourne skallet familien ( sh, ksh, bash, etc.) og den C-skall- familien (CSH, tcsh, etc.) av Unix kommandolinje skjell . Den opphever en skallvariabel og fjerner den fra minnet og skallets eksporterte miljø. Det er implementert som et skall innebygd , fordi det manipulerer direkte på innsiden av skallet. Skrivebeskyttede skallvariabler kan ikke slås av. Hvis man prøver å oppheve en skrivebeskyttet variabel, vil unsetkommandoen skrive ut en feilmelding og returnere en ikke-null utgangskode.

Oppgave: DOS, OS/2 og Windows

I kommandolinjetolker i DOS, OS/2 og Windows, for eksempel COMMAND.COMog cmd.exe, brukes SETkommandoen til å tildele miljøvariabler og verdier ved å bruke følgende argumenter:

SET VARIABLE=value

Den setkommandoen uten argumenter viser alle miljøvariabler sammen med sine verdier. I cmd.exeer det mulig å tildele lokale variabler som ikke lekker ut ved hjelp av SETLOCALkommandoen.

I PowerShell følger oppgaven en syntaks som ligner på Unix:

$env:VARIABLE = "VALUE"

Eksempler

Eksempler på miljøvariabler inkluderer:

  • PATH: en liste over katalogbaner. Når brukeren skriver inn en kommando uten å gi hele banen, kontrolleres denne listen for å se om den inneholder en bane som leder til kommandoen.
  • HOME( Unix-lignende ) og USERPROFILE(Microsoft Windows): angi hvor en brukers hjemmekatalog er plassert i filsystemet .
  • HOME/{.AppName}( Unix-lignende ) og APPDATA\{DeveloperName\AppName}(Microsoft Windows): for lagring av programinnstillinger. Mange programmer bruker feil USERPROFILEinnstillinger for programinnstillinger i Windows: USERPROFILEbør bare brukes i dialoger som lar brukeren velge mellom baner som Documents/Pictures/Downloads/Music; for programmatiske formål, APPDATA(for roamingapplikasjonsinnstillinger som deles på flere enheter), LOCALAPPDATA(for lokale programinnstillinger) eller PROGRAMDATA(for programinnstillinger delt mellom flere OS -brukere) bør brukes.
  • TERM( Unix-lignende ): angir hvilken type datamaskinterminal eller terminalemulator som brukes (f.eks. vt100Eller dumb).
  • PS1( Unix-lignende ): angir hvordan ledeteksten skal vises i Bourne-skallet og varianter.
  • MAIL( Unix-lignende ): brukes til å indikere hvor en brukers e-post skal finnes.
  • TEMP: sted der prosesser kan lagre midlertidige filer.

Ekte miljøvariabler

Unix

$PATH
Inneholder en terskelseparert liste over kataloger som skallet søker etter kommandoer som ikke inneholder en skråstrek i navnet (kommandoer med skråstreker tolkes som filnavn som skal utføres, og skallet prøver å utføre filene direkte). Det tilsvarer variabelen DOS , OS/2 og Windows %PATH% .
$HOME
Inneholder plasseringen til brukerens hjemmekatalog . Selv om den nåværende brukerens hjemmekatalog kan også bli funnet ut gjennom C-funksjoner getpwuidog getuid, $HOMEer ofte brukt for bekvemmelighet i ulike skallskript (og andre sammenhenger). Bruken av miljøvariabelen gir også brukeren muligheten til å peke til en annen katalog.
$PWD
Denne variabelen peker til den nåværende katalogen. Tilsvarer utdataene fra kommandoen pwd når den kalles uten argumenter.
$DISPLAY
Inneholder identifikatoren for displayet som X11 -programmer bør bruke som standard.
$LD_LIBRARY_PATH
På mange Unix-systemer med en dynamisk linker , inneholder en kolon-separert liste over kataloger som den dynamiske linkeren bør søke etter delte objekter når du bygger et prosessbilde etter exec, før du søker i andre kataloger.
$LIBPATH eller $SHLIB_PATH
Alternativer til $LD_LIBRARY_PATHvanligvis brukt på eldre Unix -versjoner.
$LANG, $LC_ALL, $LC_...
$LANGbrukes til å stille til standard locale . For eksempel, hvis lokalverdiene er pt_BR, er språket satt til (brasiliansk) portugisisk og brasiliansk praksis brukes der det er relevant. Forskjellige aspekter ved lokalisering blir styrt av individuelle $LC_-variables ( $LC_CTYPE, , etc.). kan brukes til å tvinge frem samme sted for alle aspekter.$LC_COLLATE$LC_DATE$LC_ALL
$TZ
Henviser til tidssone . Den kan være i flere formater, enten ved å spesifisere selve tidssonen eller referere til en fil (in /usr/share/zoneinfo).
$BROWSER
Inneholder en kolonadskilt liste over en brukers nettleserpreferanser , for bruk av programmer som må tillate brukeren å se innhold på en URL . Nettleserne i listen er ment å bli forsøkt fra første til siste, og stopper etter den første som lykkes. Denne ordningen gir mulighet for tilbakemelding i forskjellige miljøer, f.eks. I et X11- miljø kan en grafisk nettleser (for eksempel Firefox ) brukes, men i et konsollmiljø kan en terminalbasert nettleser (slik som Lynx ) brukes. Et %stoken kan være tilstede for å angi hvor URL -en skal plasseres. ellers bør nettleseren startes med URL som det første argumentet.


DOS

I henhold til DOS, er hoved miljø er gitt ved den primære kommandoprosessoren, som arver forhånds miljø definert i CONFIG.SYSda først lagt inn. Størrelsen kan konfigureres gjennom COMMAND /E:nparameteren mellom 160 og 32767 byte. Nærmiljøsegmenter som er arvet til barneprosesser reduseres vanligvis til størrelsen på innholdet de inneholder. Noen kommandolinjeprosessorer (som 4DOS ) tillater å definere et minimum av ledig miljøplass som vil være tilgjengelig når du starter sekundære skjell. Selv om innholdet i miljøvariabler forblir uendret ved lagring, blir navnene deres (uten " %") alltid konvertert til store bokstaver, med unntak av pre-miljøvariabler definert via CONFIG.SYSdirektivet SETunder DR DOS 6.0 og høyere (og bare med SWITCHES=/L(for " tillate små bokstaver ") under DR-DOS 7.02 og høyere). I prinsippet støtter MS-DOS 7.0 og nyere også små variabelnavn ( %windir%), men brukeren kan ikke definere dem. Miljøvariabelnavn som inneholder små bokstaver lagres i miljøet akkurat som normale miljøvariabler, men forblir usynlige for de fleste DOS -programvare, siden de er skrevet for å bare forvente store variabler. Noen kommandoprosessorer begrenser maksimal lengde på et variabelnavn til 80 tegn. Selv om det hovedsakelig bare er begrenset av størrelsen på miljøsegmentet , forventer noen DOS- og 16-biters Windows-programmer ikke at innholdet i miljøvariabler skal overstige 128 tegn. DR-DOS COMMAND.COMstøtter miljøvariabler på opptil 255, 4DOS til og med opptil 512 tegn. Siden COMMAND.COMkan konfigureres (via /L:128..1024) til å støtte kommandolinjer på opptil 1024 tegn internt under MS-DOS 7.0 og høyere, bør det forventes at miljøvariabler også inneholder minst 1024 tegn. I noen versjoner av DR-DOS kan miljøet som overføres til drivere, som ofte ikke trenger sitt miljø etter installasjon, krympes eller flyttes gjennom SETENVeller INSTALL[HIGH]/ LOADHIGHalternativer /Z(nullmiljø), (erstatningsstasjon, f.eks. ) Og (flytt miljø over program ) for å minimere sjåførens effektivt resulterende minnefotavtrykk. /D[:loaddrive]B:TSR.COM/E

I batchmodus erstattes ikke-eksisterende miljøvariabler med en streng med null lengde.

Standard miljøvariabler eller reserverte miljøvariabler inkluderer:

%APPEND% (støttet siden DOS 3.3)
Denne variabelen inneholder en semikolonavgrenset liste over kataloger der du kan søke etter filer. Det endres vanligvis via APPEND /Ekommandoen, som også sikrer at katalognavn blir konvertert til store bokstaver. Noen DOS -programvare forventer faktisk at navnene skal lagres i store bokstaver og at lengden på listen ikke skal overstige 121 tegn, derfor blir variabelen best ikke endret via SETkommandoen. Lange filnavn som inneholder mellomrom eller andre spesialtegn, må ikke siteres ( ").
%CONFIG%(støttes siden MS-DOS 6.0 og PC DOS 6.1 , også støttet av ROM-DOS )
Denne variabelen har det symbolske navnet på den nåværende valgte oppstartskonfigurasjonen. Det er satt opp av DOS BIOS ( IO.SYS, IBMBIO.COMetc.) for å navnet defineres av det tilsvarende CONFIG.SYSdirektiv MENUITEMfør utsetting primærkommandoprosessoren. Hovedformålet er å tillate ytterligere spesialtilfeller i AUTOEXEC.BATog lignende batchjobs avhengig av det valgte alternativet ved oppstartstid. Dette kan etterlignes under DR-DOS ved å bruke CONFIG.SYSdirektivet SETsom SET CONFIG=1.
%CMDLINE%(introdusert med 4DOS , også støttet siden MS-DOS 7.0 )
Denne variabelen inneholder den fullstendig utvidede teksten til kommandolinjen som kjøres for øyeblikket. Det kan leses av applikasjoner for å oppdage bruk av og hente lange kommandolinjer, siden den tradisjonelle metoden for å hente kommandolinjeargumentene gjennom PSP (eller relaterte API -funksjoner) er begrenset til 126 tegn og er ikke lenger tilgjengelig når FCB blir utvidet eller standard DTA brukes. Selv om 4DOS støtter lengre kommandolinjer, COMMAND.COMstøtter det bare maksimalt 126 tegn ved ledeteksten som standard (med mindre det overstyres med for /U:128..255å angi størrelsen på kommandolinjebufferen), men interne kommandolinjer kan likevel bli lengre gjennom utvidelse av fe -variabel (avhengig av /L:128..1024for å spesifisere størrelsen på den interne bufferen). I tillegg til kommandolinjelengden i PSP, er PSP-kommandolinjen normalt begrenset av ASCII-13 , og kommandolinjer som er lengre enn 126 tegn vil vanligvis bli avkortet ved å ha en ASCII-13 satt inn i posisjon 127, men dette kan ikke stole på i alle scenarier. Variabelen vil bli undertrykt for eksterne kommandoer som påkalles med et tidligere @symbol som @XCOPY ...for bakoverkompatibilitet og for å minimere størrelsen på miljøet ved lasting av ikke -flyttende TSR . Noen betaversjoner av Windows Chicago pleide bare %CMDLINE%å lagre resten av kommandolinjen som overstiger 126 tegn i stedet for hele kommandolinjen.
%COMSPEC% (støttes siden DOS 2.0)
Denne variabelen inneholder hele 8,3 banen til kommandoprosessoren , vanligvis eller . Det må ikke inneholde lange filnavn , men under DR-DOS kan det inneholde fil- og katalogpassord. Den er satt opp av den primære kommandoprosessoren for å peke på seg selv (gjenspeiler vanligvis innstillingene i direktivet ), slik at den residente delen av kommandoprosessoren kan laste den forbigående delen fra disken etter kjøring av større programmer. Verdien kan endres under kjøretid for å gjenspeile endringer i konfigurasjonen, noe som vil kreve at kommandoprosessoren laster seg på nytt fra andre steder. Variabelen brukes også ved lansering av sekundære skjell.C:\COMMAND.COMC:\DOS\COMMAND.COMCONFIG.SYSSHELL
%COPYCMD%(støttes siden MS-DOS 6.2 og PC DOS 6.3 , også støttet av ROM-DOS )
Lar brukeren å spesifisere /Ybryteren (å anta "Ja" på spørsmål) som standard for de COPY, XCOPYog MOVEkommandoer. En standard på /Ykan overstyres ved å levere /-Ybryteren på kommandolinjen. Den /Ybryter instruerer kommando for å erstatte eksisterende filer uten å spørre om bekreftelse.
%DIRCMD%(støttes siden MS-DOS 5.0 og PC DOS 5.0 , også støttet av ROM-DOS )
Lar en bruker angi tilpassede standardparametere for DIRkommandoen, inkludert filspesifikasjoner. Forhåndsinnstilte standardbrytere kan overstyres ved å angi den negative bryteren på kommandolinjen. Hvis den for eksempel %DIRCMD%inneholder /Wbryteren, kan den overstyres ved å bruke DIR /-Wden på kommandolinjen. Dette ligner på miljøvariabelen %$DIR%under DOS Plus og en mulighet for å definere standardbrytere for DIRgjennom dens /Celler /Rbrytere under DR-DOS COMMAND.COM . %DIRCMD%støttes også av de eksterne SDIR.COM/ DIR.COM Stacker -kommandoene under Novell DOS 7 og nyere.
%LANG%(støttet siden MS-DOS 7.0 )
Denne variabelen støttes av noen verktøy for å bytte sted for meldinger i flerspråklige problemer.
%LANGSPEC%(støttet siden MS-DOS 7.0 )
Denne variabelen støttes av noen verktøy for å bytte sted for meldinger i flerspråklige problemer.
%NO_SEP%(støttes siden PC DOS 6.3 og DR-DOS 7.07 )
Denne variabelen styrer visningen av tusenvis-separatorer i meldinger med forskjellige kommandoer. Utstedt som standard, kan de undertrykkes ved å spesifisere SET NO_SEP=ONeller SET NO_SEP=1under PC DOS. DR-DOS tillater i tillegg å overstyre systemets tusenvis-separator som vises som i fe SET NO_SEP=..
%PATH% (støttes siden DOS 2.0)
Denne variabelen inneholder en semikolonavgrenset liste over kataloger der kommandotolken vil søke etter kjørbare filer . Tilsvarer Unix- $PATHvariabelen (men noen DOS- og Windows-applikasjoner bruker også listen til å søke etter datafiler som ligner $LD_LIBRARY_PATHpå Unix-lignende systemer). Det endres vanligvis via kommandoen PATH(eller PATH /Eunder MS-DOS 6.0 ), som også sikrer at katalognavn blir konvertert til store bokstaver. Noen DOS -programvarer forventer faktisk at navnene skal lagres i store bokstaver og at lengden på listen ikke skal overstige 123 tegn, derfor bør variabelen bedre ikke endres via SETkommandoen. Lange filnavn som inneholder mellomrom eller andre spesialtegn, må ikke siteres ( "). Som standard blir den nåværende katalogen søkt først, men noen kommandolinjeprosessorer som 4DOS gjør at " ." (for "nåværende katalog") også kan inkluderes i listen for å overstyre denne søkeordren ; noen DOS -programmer er inkompatible med denne utvidelsen.
%PROMPT% (støttes siden DOS 2.0)
Denne variabelen inneholder en $-tokenisert streng som definerer visningen av ledeteksten . Det endres vanligvis via PROMPTkommandoen.
%TEMP%(og %TMP%)
Disse variablene inneholder banen til katalogen der midlertidige filer skal lagres. Operativsystemverktøy bruker vanligvis bare %TEMP%, mens tredjeparts programmer også bruker %TMP%. %TEMP%Tar vanligvis forrang fremfor %TMP%.

Den DR-DOS familien støtter en rekke ekstra standard miljøvariabler inkludert:

%BETA%
Denne variabelen inneholder en valgfri melding som vises av noen versjoner (inkludert DR DOS 3.41 ) av COMMAND.COMved oppstart av sekundære skall.
%DRDOSCFG%/ %NWDOSCFG%/ /%OPENDOSCFG%
Denne variabelen inneholder katalogen (uten etterfølgende " \") hvor du skal søke etter .INIog .CFGkonfigurasjonsfiler (som er DR-DOS program bestemte filer liker TASKMGR.INI, TASKMAX.INI, VIEWMAX.INI, FASTBACK.CFGetc., klasse bestemte filer som COLORS.INI, eller globale filer som DRDOS.INI, NWDOS.INI, OPENDOS.INI, eller DOS.INI) som brukes av INSTALLog SETUPkommandoer og forskjellige DR-DOS programmer som DISKOPT, DOSBOOK, EDIT, FBX, FILELINK, LOCK, SECURITY.OVL/ NWLOGIN.EXE, SERNO, TASKMAX, TASKMGR, VIEWMAX, eller UNDELETE. Den må ikke inneholde lange filnavn .
%DRCOMSPEC%
Denne variabelen har eventuelt en alternativ bane til kommandoprosessoren som går foran banen som er definert i %COMSPEC%variabelen, og eventuelt inkluderer fil- og katalogpassord. Alternativt kan den ha en spesiell verdi på " ON" eller " 1" for å håndheve bruken av %COMSPEC%variabelen selv i scenarier der %COMSPEC%variabelen kan peke på feil kommandolinjeprosessor, for eksempel når du kjører noen versjoner av DR- DOS SYS-kommando under et utenlandsk operativsystem.
%DRSYS%
Hvis du setter denne variabelen til " ON" eller " 1", vil noen versjoner av DR-DOS- SYSkommandoen tvinge til å fungere under utenlandske operativsystemer i stedet for å vise en advarsel.
%FBP_USER%
Spesifiserer brukernavnet som brukes av FastBack -kommandoen FBXog konfigurasjonsfilene under Novell DOS 7 .{user}.FB
%HOMEDIR%
Denne variabelen kan inneholde hjemmekatalogen under DR-DOS (inkludert DR DOS 5.0 og 6.0 ).
%INFO%
I noen versjoner av DR-DOS COMMAND.COMdenne variabelen definerer strengen vises av $Itegnet på den PROMPTkommando. Den kan for eksempel brukes til å informere brukeren om hvordan man går ut av sekundære skall.
%LOGINNAME%
I noen versjoner av DR-DOS COMMAND.COMdenne variabelen definerer brukernavnet vises av $Utoken av PROMPTkommandoen, som settes opp av fe påloggingsskript for Novell NetWare . Se også pseudo-variabelen på samme måte %LOGIN_NAME%.
%MDOS_EXEC%
Denne variabelen kan ta verdiene " ON" eller " OFF" under Multiuser DOS . Hvis det er aktivert, tillater operativsystemet at applikasjoner skal ut til sekundære skall med DOS -programområdet (DPA) frigjort for å ha maksimalt DOS -minne tilgjengelig for sekundære applikasjoner i stedet for å kjøre dem i samme domene som under DOS.
%NOCHAR%
Denne variabelen kan brukes til å definere tegnet som vises av noen kommandoer i meldinger for "Nei" i [Y,N]spørringer, og derved overstyre gjeldende systemstandard (vanligvis " N" i engelske versjoner av DR-DOS). Hvis den inneholder en streng, blir bare det første tegnet, med store bokstaver, tatt. Noen kommandoer støtter også en kommandolinjeparameter /Yfor automatisk å anta "Ja" på spørsmål, og dermed undertrykke slike meldinger. Hvis parameteren /Y:ynimidlertid brukes til å spesifisere "Ja"/"Nei" -tegnene (og dermed overstyre enhver %NOCHAR%innstilling), blir ikke spørringene undertrykt. Se også det relaterte CONFIG.SYSdirektivet NOCHARog miljøvariabelen %YESCHAR%.
%NOSOUND%
Hvis du setter denne variabelen til " ON" eller " 1", deaktiveres standard pip fra enkelte DR-DOS-kommandoer i visse situasjoner, for eksempel for å informere brukeren om at en operasjon er fullført, at brukerinteraksjon er nødvendig eller når en feil tast ble trykket på. Kommandolinjealternativer for å spesifikt aktivere visse pip vil overstyre denne innstillingen.
%OS%
Denne variabelen inneholder navnet på operativsystemet for å skille mellom forskjellige DOS -relaterte operativsystemer for Digital Research -opprinnelse i batchjobber og applikasjoner. Kjente verdier inkluderer " DOSPLUS" ( DOS Plus 1.2 i DOS -emulering), " CPCDOS 4.1" (DOS Plus 1.2 i CP/M -emulering), " DRDOS" ( DR DOS 3.31 - 6.0 , DR DOS Panther , DR DOS StarTrek , DR -DOS 7.02 - 7.05 ), " EZDOS" ( EZ-DOS 3.41 ), " PALMDOS" og " NetWare PalmDOS" ( PalmDOS 1.0 ), " NWDOS" ( Novell DOS 7 ), " NWDOS7" (Novell DOS 7 Beta), " OPENDOS" ( Caldera OpenDOS 7.01 , Caldera DR-OpenDOS 7.02 ), " CDOS" ( Concurrent DOS , Concurrent DOS XM ), " CPCDOS" ( Concurrent PC DOS ), " CDOS386" ( Concurrent DOS 386 ), " DRMDOS" ( DR Multiuser DOS ), " MDOS" ( CCI Multiuser DOS ), " IMSMDOS" ( IMS Multiuser DOS ), " REAL32" ( REAL/32 ). MS-DOS INTERSVRser også etter verdien " DRDOS". Se også den identisk navngitte miljøvariabelen som %OS%senere ble introdusert i Windows NT -familien .
%PEXEC%
I noen versjoner av DR-DOS denne variabelen definerer kommandoen utført av $Xtoken av PROMPTkommandoen før COMMAND.COMviser rask etter retur fra eksternt program utførelse.
%SWITCHAR%
Denne variabelen definerer SwitChar som skal brukes til argumentanalyse av noen DR-DOS-kommandoer. Hvis den er definert, overstyrer den systemets nåværende SwitChar -innstilling. De eneste aksepterte tegnene er " /" (DOS -stil), " -" (Unix -stil) og " [" (CP/M -stil). Se også det relaterte CONFIG.SYSdirektivet SWITCHAR(for å angi systemets SwitChar-innstilling) og %/% systeminformasjonsvariabelen i noen utgaver av DR-DOS COMMAND.COM(for å hente gjeldende innstilling for bærbare batchjobs).
%TASKMGRWINDIR%
Denne variabelen angir katalogen, der Windows SYSTEM.INI som skal brukes av DR-DOS- TASKMGRmultitaskeren, overstyrer standardprosedyren for å finne filen.
%VER%
Denne variabelen inneholder versjonen av operativsystemet for å skille mellom forskjellige versjoner av DR-DOS i batchjobber og i visningen av VERkommandoen. Den brukes også for kommandoens $Vsymbol PROMPTog påvirker verdien som returneres av systeminformasjonsvariabelen %OS_VERSION% . Kjente verdier inkluderer " 1.0" ( PalmDOS 1.0 ), " 1.2" ( DOS Plus 1.2 i DOS -emulering), " 2.0" ( Samtidig DOS 386 2.0 ), " 3.0" ( Samtidig DOS 386 3.0 ), " 3.31" ( DR DOS 3.31 ), " 3.32" ( DR DOS 3.32 ), " 3.33" ( DR DOS 3.33 ), " 3.34" ( DR DOS 3.34 ), " 3.35" ( DR DOS 3.35 ), " 3.40" ( DR DOS 3.40 ), " 3.41" ( DR DOS 3.41 , EZ-DOS 3.41 ), " 3.41T" ( DR DOS 3.41T ), " 4.1" ( Concurrent PC DOS 4.1 ), " 5.0" ( DR DOS 5.0 , DR Multiuser DOS 5.0 ), " 5.1" ( Novell DR Multiuser DOS 5.1 ), " 6.0" ( DR Concurrent DOS XM 6.0 , DR-DOS 6.0 ), " 6.2" ( DR Concurrent DOS XM 6,2 ), " 7" ( Novell DOS 7 , Caldera OpenDOS 7,01 , DR-DOS 7,02 - 7,05 ), " 7.00" ( CCI flerbruker DOS 7,00 ), " 7.07" ( DR-DOS 7.07 ), " 7.1" ( IMS Multiuser DOS 7.1 ), " 7.21" ( CCI Multiuser DOS 7.21 ), " 7.22" ( CCI Multiuser DOS 7.22 ) etc.
%YESCHAR%
Denne variabelen kan brukes til å definere tegnet som vises av noen kommandoer i meldinger for "Ja" i [Y,N]spørringer, og derved overstyre gjeldende systemstandard (vanligvis " Y" i engelske versjoner av DR-DOS). Hvis den inneholder en streng, blir bare det første tegnet, med store bokstaver, tatt. Noen kommandoer støtter også en kommandolinjeparameter /Yfor automatisk å anta "Ja" på spørsmål, og dermed undertrykke slike meldinger. Hvis parameteren /Y:yimidlertid brukes til å spesifisere "Ja" -tegnet (og dermed overstyre enhver %YESCHAR%innstilling), blir ikke spørringer undertrykt. Se også det relaterte CONFIG.SYSdirektivet YESCHARog miljøvariabelen %NOCHAR%.
%$CLS%
Denne variabelen definerer kontrollsekvensen som skal sendes til konsolldriveren for å slette skjermen når CLSkommandoen utstedes, og overstyrer derved den interne standard (" ←[2J" under DR-DOS ", ←E" under DOS Plus 1.2 på Amstrad-maskiner så vel som under Samtidig DOS , Multiuser DOS og REAL/32 for VT52 -terminaler, eller " ←+" under Multiuser DOS for ASCII -terminaler). Hvis variabelen ikke er definert og ingen ANSI.SYSkonsolldriver er oppdaget, vil DR-DOS COMMAND.COMslette skjermen direkte via INT 10h/AH=00h BIOS- funksjonen, slik MS-DOS/PC DOS COMMAND.COMgjør. En spesiell \nnn-notasjon for oktale tall støttes for å tillate definisjonen av spesialtegn som ESC ( ASCII -27 = "←" = 1Bh = 33o), som fe in SET $CLS=\033[2J. For å sende backslash (" \") selv, kan den dobles " \\".
%$DIR%
Støttet av DOS Plus som godtar verdiene "L" (lang) eller "W" (bred) for å endre standardoppsettet for katalogoppføringer med DIR . Kan overstyres ved hjelp av kommandolinjealternativene /Leller /W. Se også den tilsvarende miljøvariabelen %DIRCMD%og DIRalternativene /Cog /RDR-DOS COMMAND.COM.
%$PAGE%
Støttet av DOS Plus som godtar verdiene " ON" eller " OFF" for pagineringskontroll. Å sette dette til " ON" har samme effekt som å legge /Ptil kommandoer som støtter det (som DIR eller TYPE ).
%$LENGTH%
Brukes av DOS Plus til å definere skjermlengden på konsollen i linjer. Dette brukes til å styre på en bærbar måte når skjermutgangen midlertidig skal stoppes inntil en tast trykkes sammen med /Palternativet som støttes av forskjellige kommandoer eller med automatisk pagnering. Se også de relaterte miljøvariablene %$WIDTH%og %DIRSIZE%den lignende pseudovariabelen %_ROWS%.
%$WIDTH%
Brukes av DOS Plus til å definere skjermbredden på konsollen i kolonner. Dette brukes til å styre på en bærbar måte formateringen av skjermutgangen på kommandoer som DIR /Weller TYPE filename. Se også de relaterte miljøvariablene %$LENGTH%og %DIRSIZE%den lignende pseudovariabelen %_COLUMNS%.
%$SLICE%
Brukes av DOS Plus som godtar en numerisk verdi for å kontrollere forgrunns-/bakgrunnstidssnittet for fleroppgaveprogrammer. Se også DOS Plus -kommandoen SLICE.
%$ON%
Denne variabelen kan inneholde en valgfri kontrollsekvens for å slå på tekstmarkering, reversering eller fargelegging. Den brukes til å understreke eller på annen måte kontrollere visningen av filnavnene i kommandoer som TYPE wildcardfor eksempel SET $ON=\033[1mmed ANSI.SYS lastet eller SET $ON=\016for en IBM- eller ESC/P -skriver. For den spesielle \nnnoktale notasjonen som støttes, se %$CLS%. Selv om variabelen ikke er definert som standard under DOS Plus og DR-DOS, er DOC- standarden for flere brukere lik for en ASCII- terminal SET $ON=\033p. Se også den relaterte miljøvariabelen %$OFF%.
%$OFF%
Denne variabelen kan inneholde en valgfri kontrollsekvens for å slå av tekstmarkering, reversering eller fargelegging. Den brukes til å gå tilbake til normal utgang etter visning av filnavn i kommandoer som TYPE wildcardfor eksempel SET $OFF=\033[0mmed ANSI.SYS lastet eller SET $OFF=\024for en IBM- eller ESC/P -skriver. For den spesielle \nnnoktale notasjonen som støttes, se %$CLS%. Selv om variabelen ikke er definert som standard under DOS Plus og DR-DOS, er DOC- standarden for flere brukere lik for en ASCII- terminal SET $OFF=\033q. Se også den relaterte miljøvariabelen %$ON%.
%$HEADER%
Denne variabelen kan inneholde en valgfri kontrollsekvens utstedt før utdata av filinnholdet i kommandoer som TYPEunder DR-DOS 7.02 og høyere. Den kan brukes til utheving, paginering eller formatering, fe når du sender utskriften til en skriver, dvs. SET $HEADER=\017for en IBM- eller ESC/P -skriver. For den spesielle \nnnoktale notasjonen som støttes, se %$CLS%. Se også den relaterte miljøvariabelen %$FOOTER%.
%$FOOTER%
Denne variabelen kan inneholde en valgfri kontrollsekvens utstedt etter utdata av filinnholdet i kommandoer som TYPEunder DR-DOS 7.02 og høyere. Den brukes til å gå tilbake til det normale utdataformatet, dvs. SET $FOOTER=\022\014i skrivereksemplet ovenfor. For den spesielle \nnnoktale notasjonen som støttes, se %$CLS%. Se også den relaterte miljøvariabelen %$HEADER%.

Datalight ROM-DOS støtter også en rekke ekstra standard miljøvariabler , inkludert:

%DIRSIZE%
Denne variabelen brukes til å definere ikke-standardiserte skjermstørrelser rows[,cols]for DIRalternativer /Pog /W(lignende %$LENGTH%og %$WIDTH%under DOS Plus).
%NEWFILE%
Denne variabelen settes automatisk til den første parameteren som er gitt til CONFIG.SYS -direktivet NEWFILE .

%TZ%, %COMM%, %SOCKETS%, %HTTP_DIR%, %HOSTNAME%Og %FTPDIR%er også brukt av ROM-DOS.

OS/2

%BEGINLIBPATH%
Inneholder en semikolonseparert liste over kataloger som søkes etter DLL-filer før katalogene gitt av %LIBPATH%variabelen (som angis under systemoppstart med det spesielle CONFIG.SYS- direktivet LIBPATH). Det er mulig å spesifisere relative kataloger her, inkludert " ." for den nåværende arbeidskatalogen. Se også den relaterte miljøvariabelen %ENDLIBPATH%.
%ENDLIBPATH%
en liste over kataloger som skal søkes etter DLLer som %BEGINLIBPATH%, men søkte etter listen over kataloger i %LIBPATH%.

Windows

Systembanevariabler refererer til steder for kritiske operativsystemressurser, og er som sådan generelt ikke brukeravhengige.

%APPDATA%
Inneholder hele banen til applikasjonsdatakatalogen til den påloggede brukeren. Fungerer ikke på Windows NT 4.0 SP6 UK.
%LOCALAPPDATA%
Denne variabelen er de midlertidige filene til applikasjoner . Bruksområdene inkluderer lagring av skrivebordstemaer , Windows -feilrapportering , hurtigbufring og profiler av nettlesere.
%ComSpec%/%COMSPEC%
Den %ComSpec%variable inneholder hele banen i kommandoprosessoren; på Windows NT familien av operativsystemer, er dette cmd.exe , mens Windows 9x , %COMSPEC%er COMMAND.COM .
%OS%
Den %OS%variable inneholder et symbolsk navn på operativsystemet familien for å skille mellom ulike funksjonssettene i batchjobs . Den ligner en identisk navngitt miljøvariabel som %OS%finnes i alle DOS -relaterte operativsystemer for Digital Research -opprinnelse som Concurrent DOS, Multiuser DOS , REAL/32, DOS Plus , DR DOS , Novell DOS og OpenDOS. %OS%holder alltid strengen " Windows_NT" på Windows NT -familien .
%PATH%
Denne variabelen inneholder en semikolon-avgrenset (ikke legg mellomrom mellom) liste over kataloger der kommandotolken vil søke etter en kjørbar fil som samsvarer med den gitte kommandoen. Miljøvariabler som representerer stier kan være nestet i %PATH%variabelen, men bare på ett nivå av indireksjon. Hvis denne miljøvariabelen i underbanen i seg selv inneholder en miljøvariabel som representerer en bane, %PATH%vil den ikke ekspandere riktig i variabelen substitusjon. Tilsvarer Unix $PATH -variabelen.
%ProgramFiles%, %ProgramFiles(x86)%,%ProgramW6432%
De %ProgramFiles%variable peker til Program Files katalogen, som lagrer alle installerte programmer i Windows og andre. Standard på engelskspråklige systemer er " C:\Program Files". I 64-biters versjoner av Windows (XP, 2003, Vista) finnes det også %ProgramFiles(x86)%standardinnstillinger for " C:\Program Files (x86)" og %ProgramW6432%som " C:\Program Files" som standard . Selve %ProgramFiles%avhenger av om prosessen som ber om miljøvariabelen selv er 32-bit eller 64-bit (dette er forårsaket av Windows-på-Windows 64-biters omdirigering).
%CommonProgramFiles%
Denne variabelen peker til Common Files -katalogen. Standard er " C:\Program Files\Common Files" i den engelske versjonen av Windows.
%SystemDrive%
Den %SystemDrive%variable er et spesielt system-wide miljøvariabelen funnet på Windows NT og dets derivater. Verdien er stasjonen som systemkatalogen ble plassert på. Verdien av %SystemDrive%er i de fleste tilfeller " C:".
%SystemRoot%
Den %SystemRoot%variable er et spesielt system-wide miljøvariabelen funnet på Windows NT familien av operativsystemer. Verdien er plasseringen av systemkatalogen, inkludert stasjonen og banen. Stasjonen er den samme som %SystemDrive%og standardbanen for en ren installasjon avhenger av versjonen av operativsystemet. Som standard:
%windir%
Denne variabelen peker til Windows -katalogen. (På Windows NT -familien av operativsystemer er den identisk med %SystemRoot%variabelen). Windows 95 - 98 og Windows ME er som standard installert i " C:\Windows". For andre versjoner av Windows, se %SystemRoot%oppføringen ovenfor.

Brukeradministrasjonsvariabler lagrer informasjon relatert til ressurser og innstillinger som eies av forskjellige brukerprofiler i systemet. Som en hovedregel refererer disse variablene ikke til kritiske systemressurser eller steder som er nødvendige for at operativsystemet skal kjøre.

%ALLUSERSPROFILE%( %PROGRAMDATA%siden Windows Vista)
Denne variabelen utvides til hele banen til profilkatalogen Alle brukere . Denne profilen inneholder ressurser og innstillinger som brukes av alle systemkontoer. Snarvei koblinger kopiert til alle brukere \' Start-menyen eller Desktop kataloger vil dukke opp i hver brukers Start-menyen eller skrivebordet , henholdsvis.
%USERDOMAIN%
Navnet på arbeidsgruppen eller Windows -domenet som den nåværende brukeren tilhører. Den relaterte variabelen %LOGONSERVER%,, inneholder vertsnavnet til serveren som godkjente den nåværende brukerens påloggingsinformasjon (navn og passord). For hjemme -PCer og PC -er i en arbeidsgruppe er autentiseringsserveren vanligvis selve PC -en. For PC-er i et Windows-domene, er autentiseringsserveren en domenekontroller (en primær domenekontroller, eller PDC, i Windows NT 4-baserte domener).
%USERPROFILE%
En spesiell systemomfattende miljøvariabel som finnes på Windows NT og dets derivater. Verdien er plasseringen av den nåværende brukerens profilkatalog, der brukerens HKCU -register ( NTUSER) finnes. Brukere kan også bruke %USERNAME%variabelen til å bestemme den aktive brukerens påloggingsidentifikasjon.

Valgfrie systemvariabler er ikke eksplisitt spesifisert som standard, men kan brukes til å endre standardatferd for visse innebygde konsollkommandoer. Disse variablene trenger heller ikke spesifiseres spesifikt som kommandolinjeargumenter.

Standardverdier

Tabellene nedenfor viser typiske standardverdier for visse miljøvariabler under engelske versjoner av Windows som de kan hentes under CMD.

(Noen av disse variablene er også definert når de kjøres COMMAND.COMunder Windows, men er forskjellige med visse viktige detaljer: Under COMMAND.COMer navnene på miljøvariabler alltid store. Noen, men ikke alle variabler inneholder korte 8,3 snarere enn lange filnavn . Mens noen variabler er tilstede i CMDmiljøet mangler, er det også noen variabler som er spesifikke for COMMANDmiljøet.)

Variabel Lokal spesifikk Windows XP (CMD) Windows Vista og nyere (CMD)
%ALLUSERSPROFIL% Ja C: \ Documents and Settings \ Alle brukere C: \ ProgramData
%APPDATA% Ja C: \ Dokumenter og innstillinger \ {brukernavn} \ Programdata C: \ Users \ {brukernavn} \ AppData \ Roaming
%CommonProgramFiles% Ja C: \ Program Files \ Common Files C: \ Program Files \ Common Files
%CommonProgramFiles (x86)% Ja C: \ Program Files (x86) \ Common Files (bare i 64-biters versjon) C: \ Program Files (x86) \ Common Files (bare i 64-biters versjon)
%FellesprogramW6432% Ja % CommonProgramW6432% (støttes ikke, erstattes ikke av noen verdi) C: \ Program Files \ Common Files (bare i 64-biters versjon)
%COMPUTERNAME% Nei {computername} {computername}
%ComSpec% Nei C: \ Windows \ System32 \ cmd.exe C: \ Windows \ System32 \ cmd.exe
%HOMEDRIVE% Nei C: C:
%HOMEPATH% Ja \ Dokumenter og innstillinger \ {brukernavn} \ Brukere \ {brukernavn}
%LOCALAPPDATA% Ja % LOCALAPPDATA% (støttes ikke, erstattes ikke av noen verdi) C: \ Users \ {brukernavn} \ AppData \ Local
%LOGONSERVER% Nei \\ {domain_logon_server} \\ {domain_logon_server}
%STI% Ja C: \ Windows \ system32; C: \ Windows; C: \ Windows \ System32 \ Wbem; {pluss programbaner} C: \ Windows \ system32; C: \ Windows; C: \ Windows \ System32 \ Wbem; {pluss programbaner}
%PATHEXT% Nei .COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS; .WSF; .WSH .com; .exe; .bat; .cmd; .vbs; .vbe; .js; .jse; .wsf; .wsh; .msc
%ProgramData% Ja % ProgramData% (støttes ikke, erstattes ikke av noen verdi) % SystemDrive% \ ProgramData
%Programfiler% Ja % SystemDrive% \ Program Files % SystemDrive% \ Program Files
%ProgramFiles (x86)% Ja % SystemDrive% \ Program Files (x86) (bare i 64-biters versjon) % SystemDrive% \ Program Files (x86) (bare i 64-biters versjon)
%ProgramW6432% Ja % ProgramW6432% (støttes ikke, erstattes ikke av noen verdi) % SystemDrive% \ Program Files (bare i 64-biters versjon)
%PROMPT% Nei Kode for gjeldende ledetekstformat, vanligvis $ P $ G Kode for gjeldende ledetekstformat, vanligvis $ P $ G
%PSModulePath% % PSModulePath% (støttes ikke, erstattes ikke av noen verdi) % SystemRoot% \ system32 \ WindowsPowerShell \ v1.0 \ Modules \
%OFFENTLIG% Ja % PUBLIC% (støttes ikke, erstattes ikke av noen verdi) % SystemDrive% \ Users \ Public
%SystemDrive% Nei C: C:
%SystemRoot% Nei Windows -katalogen, vanligvis C: \ Windows, tidligere C: \ WINNT % SystemDrive% \ Windows
%TEMP% og %TMP% Ja % SystemDrive% \ Documents and Settings \ {brukernavn} \ Lokale innstillinger \ Temp % SystemRoot% \ TEMP (for systemmiljøvariabler % TMP% og % TEMP% ), % USERPROFILE% \ AppData \ Local \ Temp (for brukermiljøvariabler % TMP% og % TEMP% )
%USERDOMAIN% Nei {userdomain} {userdomain}
%USERNAME% Nei {brukernavn} {brukernavn}
%BRUKERPROFIL% Ja % SystemDrive% \ Documents and Settings \ {brukernavn} % SystemDrive% \ Users \ {brukernavn}
%windir% Nei % SystemDrive% \ WINDOWS % SystemDrive% \ Windows

I denne listen er det ingen miljøvariabel som refererer til plasseringen av brukerens Mine dokumenter -katalog, så det er ingen standard metode for å sette et programs hjemmekatalog til å være Mine dokumenter -katalogen.

Pseudomiljøvariabler

Kommandoprosessorene i DOS og Windows støtter også pseudomiljøvariabler. Dette er verdier som hentes som miljøvariabler, men som ikke virkelig lagres i miljøet, men beregnes når det blir forespurt.

DOS

I tillegg til sanne miljøvariabler, som er statisk lagret i miljøet til de endres eller slettes, finnes det en rekke pseudomiljøvariabler for batchbehandling.

De såkalte erstatningsparametrene eller utskiftbare parametrene (Microsoft / IBM-terminologi) aka erstatningsvariabler (Digital Research / Novell / Caldera-terminologi) eller batchfilparametere (JP Software-terminologi) %1.. %9og %0kan brukes til å hente kalleparametrene til et batchjob , se SHIFT. I batchjobs kan de hentes akkurat som miljøvariabler, men lagres faktisk ikke i miljøet.

Noen kommandolinjeprosessorer (som DR-DOS COMMAND.COM , Multiuser DOS MDOS.COM / TMP.EXE(Terminal Message Process), JP Software 4DOS , 4OS2 , 4NT , Take Command og Windows cmd.exe ) støtter en type pseudomiljøvariabler som heter systeminformasjonsvariabler (Novell / Caldera-terminologi) eller interne variabler (JP Software-terminologi), som kan brukes til å hente ut mulig mulig dynamisk, men skrivebeskyttet informasjon om det kjørende systemet i batchjobber. De returnerte verdiene representerer systemets status i det øyeblikket disse variablene blir spurt; det vil si å lese dem flere ganger på rad kan returnere forskjellige verdier selv innenfor samme kommando; å spørre dem har ingen direkte effekt på systemet. Siden de ikke er lagret i miljøet, er de ikke oppført av SET og finnes ikke for eksterne programmer å hente. Hvis en ekte miljøvariabel med samme navn er definert, går den foran den tilsvarende variabelen til miljøvariabelen slettes igjen. De er ikke store og små bokstaver. Selv om nesten alle slike variabler er prefiks med en understreking (" _") av 4DOS etc. etter konvensjon (fe %_SECOND%), er de ikke under DR-DOS COMMAND.COM(fe %OS_VERSION%).

I tillegg støtter 4DOS, 4OS2, 4NT og Take Command også såkalte variable funksjoner , inkludert brukerdefinerbare. De fungerer akkurat som interne variabler , men kan ta valgfrie parametere (fe %@EVAL[]%) og kan til og med endre systemstatus avhengig av funksjonen.

Systeminformasjonsvariabler som støttes av DR-DOS COMMAND.COM:

%AM_PM%
Denne pseudo-variabelen returnerer statusen for gjeldende tid før eller etter middag. Den returnerte strengen avhenger av den lokale spesifikke versjonen av DR-DOS, fe " am" eller " pm" i den engelske versjonen. Den ligner en identisk navngitt identifikasjonsvariabel i Novell NetWare påloggingsskript.
%DAY%
Denne pseudo-variabelen returnerer dagene for gjeldende dato i et 2-sifret format med ledende nuller, fe " 01" .. " 31". Se også den lignende pseudo-variabelen %_DAY%. Den ligner en identisk navngitt identifikasjonsvariabel i Novell NetWare påloggingsskript.
%DAY_OF_WEEK%
Denne pseudo-variabelen returnerer ukens dagnavn i et 3-tegners format. Den returnerte strengen avhenger av den lokale spesifikke versjonen av DR-DOS, fe " Sun", " Mon", " Tue", " Wed", " Thu", " Fri" eller " Sat" i den engelske versjonen. Den ligner en identisk navngitt identifikasjonsvariabel i Novell NetWare påloggingsskript.
%ERRORLEVEL%
I COMMAND.COMDR-DOS 7.02 og nyere returnerer denne pseudo-variabelen det siste feilnivået som returneres av et eksternt program eller RETURNkommandoen fe " 0" .. " 255". Se også den identisk navngitte pseudo-variabelen %ERRORLEVEL%under Windows og den IF ERRORLEVELbetingede kommandoen.
%ERRORLVL%
I DR-DOS 7.02 og nyere returnerer denne pseudo-variabelen det siste feilnivået i et tresifret format med ledende nuller, fe " 000" .. " 255". Under Multiuser DOS er dette en ekte miljøvariabel som automatisk oppdateres av skallet til returkoden for avsluttende programmer. Se også den relaterte pseudo-variabelen %ERRORLEVEL%under DR-DOS og IF ERRORLEVELkommandoen.
%GREETING_TIME%
Denne pseudo-variabelen returnerer 3-dagers hilsenstid. Den returnerte strengen avhenger av den lokale spesifikke versjonen av DR-DOS, fe " morning", " afternoon" eller " evening" i den engelske versjonen. Den ligner en identisk navngitt identifikasjonsvariabel i Novell NetWare påloggingsskript.
%HOUR%
Denne pseudo-variabelen returnerer timene for gjeldende tid i 12-timers format uten ledende nuller, fe " 1" .. " 12". Den ligner en identisk navngitt identifikasjonsvariabel i Novell NetWare påloggingsskript.
%HOUR24%
Denne pseudo-variabelen returnerer timene for gjeldende tid i 24-timers format i et 2-sifret format med ledende nuller, fe " 00" .. " 23". Den ligner en identisk navngitt identifikasjonsvariabel i Novell NetWare påloggingsskript. Se også den lignende pseudo-variabelen %_HOUR%.
%MINUTE%
Denne pseudo-variabelen returnerer minuttene for gjeldende tid i et 2-sifret format med ledende nuller, fe " 00" .. " 59". Den ligner en identisk navngitt identifikasjonsvariabel i Novell NetWare påloggingsskript. Se også den lignende pseudo-variabelen %_MINUTE%.
%MONTH%
Denne pseudo-variabelen returnerer månedene for gjeldende dato i et 2-sifret format med ledende nuller, fe " 01" .. " 12". Den ligner en identisk navngitt identifikasjonsvariabel i Novell NetWare påloggingsskript. Se også den lignende pseudo-variabelen %_MONTH%.
%MONTH_NAME%
Denne pseudo-variabelen returnerer månedsnavnet til gjeldende dato. Den returnerte strengen avhenger av den landsspesifikke versjonen av DR-DOS, fe " January", " February", " March", " April" " May", " June", " July", " August" " September", " October" eller " December" in den engelske versjonen. Den ligner en identisk navngitt identifikasjonsvariabel i Novell NetWare påloggingsskript.
%NDAY_OF_WEEK%
Denne pseudo-variabelen returnerer antall dager i gjeldende uke, fe " 1" .. " 7" (med " 1" for søndag). Den ligner en identisk navngitt identifikasjonsvariabel i Novell NetWare påloggingsskript.
%OS_VERSION%
Denne pseudo-variabelen returnerer versjonen av operativsystemet avhengig av den nåværende innstillingen til miljøvariabelen %VER%. Hvis %VER%ikke er definert, %OS_VERSION%returnerer " off". Den ligner en identisk navngitt identifikasjonsvariabel i Novell NetWare påloggingsskript, som kan returnere versjoner også for ikke-DR-DOS-versjoner av DOS.
%SECOND%
Denne pseudo-variabelen returnerer sekundene av gjeldende tid i et 2-sifret format med ledende nuller, fe " 00" .. " 59". Den ligner en identisk navngitt identifikasjonsvariabel i Novell NetWare påloggingsskript. Se også den lignende pseudo-variabelen %_SECOND%.
%SHORT_YEAR%
Denne pseudo-variabelen returnerer året for gjeldende dato i et tosifret format med ledende nuller, fe " 93" .. " 99", " 00" .. " 92". Den ligner en identisk navngitt identifikasjonsvariabel i Novell NetWare påloggingsskript.
%YEAR% og %_YEAR%
Støttet siden Novell DOS 7 , %YEAR%returnerer pseudo-variabelen året for gjeldende dato i et firesifret format, fe " 1980" .. " 2099". Den ligner en identisk navngitt identifikasjonsvariabel i Novell NetWare påloggingsskript. DR-DOS 7.02 og nyere lagt til %_YEAR%for kompatibilitet med 4DOS , og returnerer samme verdi.
%/%
I COMMAND.COMDR-DOS 7.02 og nyere returnerer denne pseudo-variabelen gjeldende SwitChar- innstilling for systemet, enten " /" (DOS-stil) eller " -" (Unix-stil). Se også det relaterte CONFIG.SYSdirektivet SWITCHAR og miljøvariabelen %SWITCHAR%.
%_CODEPAGE%
Denne pseudo-variabelen returnerer systemets nåværende kodeside (" 1" .. " 65533"), fe " 437", " 850", " 858". Denne variabelen ble opprinnelig introdusert av 4DOS , men ble også tilgjengelig COMMAND.COMsiden DR-DOS 7.02. Se også CHCPkommandoen.
%_COLUMNS%
Denne pseudo-variabelen returnerer gjeldende antall skjermkolonner avhengig av visningsmodus, fe " 40", " 80", " 132", etc. Denne variabelen ble opprinnelig introdusert av 4DOS , men ble også tilgjengelig COMMAND.COMsiden DR-DOS 7.02. Se også en lignende miljøvariabel %$WIDTH%under DOS Plus.
%_COUNTRY%
Denne pseudo-variabelen returnerer systemets nåværende landskode (" 1" .. " 65534"), fe " 1" for USA, " 44" for Storbritannia, " 49" for Tyskland, " 20049" med ISO 8601 , " 21049" med ISO 8601 og Euro- støtte . Denne variabelen ble opprinnelig introdusert av 4DOS , men ble også tilgjengelig COMMAND.COMsiden DR-DOS 7.02. Se også CONFIG.SYSdirektivet COUNTRY.
%_DAY%
Denne pseudo-variabelen returnerer dagene for gjeldende dato uten nullpunkt, fe " 1" .. " 31". Denne variabelen ble opprinnelig introdusert av 4DOS , men ble også tilgjengelig COMMAND.COMsiden DR-DOS 7.02. Se også den lignende pseudo-variabelen %DAY%.
%_HOUR%
Denne pseudo-variabelen returnerer timene til gjeldende tid i 24-timers format uten ledende nuller, fe " 0" .. " 23". Denne variabelen ble opprinnelig introdusert av 4DOS , men ble også tilgjengelig COMMAND.COMsiden DR-DOS 7.02. Se også den lignende pseudo-variabelen %HOUR24%.
%_MINUTE%
Denne pseudo-variabelen returnerer minuttene av gjeldende tid uten å føre nuller, fe " 0" .. " 59". Denne variabelen ble opprinnelig introdusert av 4DOS , men ble også tilgjengelig COMMAND.COMsiden DR-DOS 7.02. Se også den lignende pseudo-variabelen %MINUTE%.
%_MONTH%
Denne pseudo-variabelen returnerer månedene på gjeldende dato uten nullpunkt, fe " 1" .. " 12". Denne variabelen ble opprinnelig introdusert av 4DOS , men ble også tilgjengelig COMMAND.COMsiden DR-DOS 7.02. Se også den lignende pseudo-variabelen %MONTH%.
%_ROWS%
Denne pseudo-variabelen returnerer gjeldende antall skjermrader avhengig av visningsmodus, fe " 25", " 43", " 50", etc. Denne variabelen ble opprinnelig introdusert av 4DOS , men ble også tilgjengelig COMMAND.COMsiden DR-DOS 7.02. Se en lignende miljøvariabel %$LENGTH%under DOS Plus.
%_SECOND%
Denne pseudo-variabelen returnerer sekundene av gjeldende tid uten å føre nuller, fe " 0" .. " 59". Denne variabelen ble opprinnelig introdusert av 4DOS , men ble også tilgjengelig COMMAND.COMsiden DR-DOS 7.02. Se også den lignende pseudo-variabelen %SECOND%.

Systeminformasjonsvariabler som støttes av DR-DOS COMMAND.COMmed nettverk lastet inn:

%LOGIN_NAME%
Denne pseudo-variabelen returnerer brukernavnet. Dette alltid jobbet med NETX, men det vil også arbeide med Personal NetWare er ODI / VLM hvis gjeldende stasjonen er en Falcon-tilordnet stasjon (ellers en tom streng returneres). Se også miljøvariabelen med samme navn %LOGINNAME%.
%P_STATION%
Denne pseudo-variabelen returnerer det fysiske stasjonsnummeret i et format " ????????????". Verdien avhenger av MAC -adressen til nettverkskortet, men kan overstyres. Den ligner en identisk navngitt identifikasjonsvariabel i Novell NetWare påloggingsskript.
%STATION%
Denne pseudo-variabelen returnerer det logiske stasjonsnummeret som begynner med " 1" for den første klienten. Tallene tildeles av filserveren og forblir statiske så lenge IPX -tilkoblingen forblir etablert. Den ligner en identisk navngitt identifikasjonsvariabel i Novell NetWare påloggingsskript.
%FULL_NAME%
Denne pseudo-variabelen returnerer hele navnet på den påloggede brukeren, hvis tilgjengelig. Den ligner en identisk navngitt identifikasjonsvariabel i Novell NetWare påloggingsskript. Se også den relaterte pseudo-variabelen %LOGIN_NAME%.

Windows

Dynamiske miljøvariabler (også kalt interne variabler eller systeminformasjonsvariabler under DOS) er pseudomiljøvariabler som støttes av CMDnår kommandolinjeutvidelser er aktivert, og de utvides til forskjellige diskrete verdier når de blir spurt, det vil si at verdiene deres kan endres når du spør flere ganger til og med innenfor samme kommando. Selv om de kan brukes i batchjobber og etter ledeteksten, lagres de ikke i miljøet. Følgelig er de verken oppført av SETeller finnes for eksterne programmer å lese. De er ikke store og små bokstaver.

Indirekte støttes de også under Windows ' COMMAND.COM, som har blitt endret for å ringe internt for CMD.EXEå utføre kommandoene.

%CD%
Denne pseudo-variabelen utvides til den nåværende katalogen som tilsvarer utdataene fra kommandoen CDnår den kalles uten argumenter. Selv om et langt filnavn kan returneres under, CMD.EXEavhengig av den nåværende katalogen, vil det faktum at den nåværende katalogen alltid vil være i 8.3 -format under COMMAND.COMføre til at den returnerer et kort filnavn under COMMAND.COM, selv når den COMMANDringer internt CMD.
%CMDCMDLINE%
Denne pseudo-variabelen utvides til de opprinnelige oppstartsparametrene til CMD.EXE, fe " C:\Windows\system32\cmd.exe". Under Windows kan COMMAND.COMdette returnere noe som " C:\Windows\system32\cmd.exe /c ..." på grunn av det faktum at det COMMAND.COMringer CMD.EXEinternt.
%CMDEXTVERSION%
Denne pseudo-variabelen utvides til versjonen av kommandolinjeutvidelsene til CMD.EXE, hvis den er aktivert (f.eks. " 1" Under Windows NT ", 2" under Windows 2000 og Windows XP ).
%DATE%
Denne pseudo-variabelen utvides til gjeldende dato. Datoen vises i henhold til gjeldende brukers datoformatpreferanser .
%ERRORLEVEL%
Denne pseudo-variabelen utvides til det siste angitte feilnivået, en verdi mellom " 0" og " 255" (uten ledende nuller). Eksterne kommandoer og noen interne kommandoer angir feilnivåer ved utførelse. Se også den identisk navngitte pseudo-variabelen %ERRORLEVEL%under DR-DOS og IF ERRORLEVELkommandoen.
%RANDOM%
Denne pseudo-variabelen returnerer et tilfeldig tall mellom " 0" og " 32767".
%TIME%
Denne pseudo-variabelen returnerer gjeldende tid. Tiden vises i henhold til gjeldende brukers tidsformatpreferanser. Hvis %TIME%og %DATE%variabler er begge brukes, er det viktig å lese dem begge i denne rekkefølgen i rask rekkefølge for å unngå midnatt-roll problemer.

Andre skjell

Unix-lignende skall har lignende dynamisk genererte variabler, bash er $RANDOMet velkjent eksempel. Siden disse skallene har et konsept med lokale variabler, blir de i stedet beskrevet som spesielle lokale variabler.

Se også

Merknader

Referanser

Videre lesning

Eksterne linker