Kommandoen: "SET" er på Windows 12, 11, 10, .. , MS Server 2025, 2022, 2019, .. tilgjengelig
Eksemplene for kommandoen "SET"
De
`SET`kommando i Windows Ledetekst brukes til å opprette, vise eller endre miljøvariabler. Her er noen eksempler på bruk av
`SET`-Kommando:
Eksempel 1: Opprett en ny miljøvariabel:
SET NY_VARIABLE=Innhold
Beskrivelse: Denne kommandoen oppretter en ny miljøvariabel kalt
`NY_VARIABLE`og verdien
`Innhold`.
Eksempel 2: Vis en eksisterende miljøvariabel:
SET EKSISTERENDE_VARIABLE
Beskrivelse: Denne kommandoen viser verdien av miljøvariabelen
`EKSISTERENDE_VARIABLE`på.
Eksempel 3: Vis alle miljøvariabler:
SET
Beskrivelse: Ved å gå inn
`SET`uten en spesifikk variabel, vises alle miljøvariabler og deres verdier.
Eksempel 4: Slett variabel:
SET NY_VARIABLE=
Beskrivelse: Dette er verdien av miljøvariabelen
`NY_VARIABLE`slettet.
Eksempel 5: Bruke en variabel i en batchfil:
ECHO %NY_VARIABLE%
Beskrivelse: Denne kommandoen returnerer verdien til miljøvariabelen
`NY_VARIABLE`ut av. I batch-filer syntaksen
`%Variable%`brukes til å få tilgang til verdien av en miljøvariabel.
Eksempel 6: Lagre brukerinndata i en variabel:
SET /P BRUKEROPPGAVE=Skriv inn noe:
Beskrivelse: Denne kommandoen ber brukeren om å skrive inn noe og lagrer inndata i miljøvariabelen
`BRUKEROPPGAVE`.
Det er mange avanserte alternativer og funksjoner
`SET`kommando, inkludert strengmodifikasjoner, bruk av miljøvariabler i batch-skript og mer. Om å gå inn
`SET /?`i ledeteksten får du en liste over tilgjengelige alternativer og mer detaljert informasjon.
"SET" Utdrag fra Microsoft Windows Hjelp
Microsoft Windows [Version 10.0.19045.3693]
(c) Copyright 1985-2023 Microsoft Corp.
C:\\Windows>
Viser, angir eller fjerner miljøvariablene i Cmd.exe.
SET [variabel=[streng]]
variabel Angir navnet på miljøvariabelen.
streng Angir tegnene som skal tilordnes variabelen.
Skriv SET uten parametere for å vise gjeldende miljøvariabler.
Hvis kommandoutvidelser er aktivert, vil SET få følgende
endringer:
En SET-kommando som startes med bare et variabelnavn, uten
likhetstegn eller
verdi, vil vise verdien for alle variabler med et prefiks som
passer med
navnet gitt til SET-kommandoen. Eksempel:
SET P
viser alle variabler som begynner med bokstaven P
SET-kommandoen vil sette ERRORLEVEL til 1 hvis variabelnavnet
ikke finnes i
gjeldende miljø.
SET-kommandoen vil ikke tillate et likhetstegn som en del av
navnet på en
variabel.
To nye brytere er lagt til SET-kommandoen:
SET /A uttrykk
SET /P variabel=[spørrestreng]
Bryteren /A angir at strengen på høyre side av likhetstegnet er
et numerisk
uttrykk som skal analyseres. Uttrykksanalysatoren er ganske
enkel, og støtter
følgende operasjoner, vist i synkende prioritet:
() - gruppering
! ~ - - monooperatorer
* / % - aritmetiske operatorer
+ - - aritmetiske operatorer
<< >> - logisk skift
& - bitvis og
^ - bitvis eksklusiv eller
| - bitvis eller
= *= /= %= += -= - tilordning
&= ^= |= <<= >>=
, - uttrykksseparator
Hvis du bruker noen av de logiske eller modulus-operatorene, må
du omslutte
uttrykksstrengen med anførselstegn. Alle ikke-numeriske strenger
i uttrykket
behandles som miljøvariabelnavn hvor verdiene blir konvertert til
tall før de
brukes. Hvis et miljøvariabelnavn er angitt men ikke definert i
gjeldende
miljø, vil verdien null benyttes. Dette tillater deg å utføre
aritmetiske
operasjoner med miljøvariabelverdier uten å måtte skrive inn
mange %-tegn for
å hente verdiene. Hvis SET /A utføres fra kommandolinjen utenfor
et kommando-
skript, vil den endelige verdien av uttrykket vises.
Tilordningsoperatoren
krever et miljøvariabelnavn på venstre side av
tilordningsoperatoren.
Numeriske verdier er desimaltall med mindre de inneholder et
prefiks med 0x
for heksadesimale tall eller 0 for oktale tall. Slik er 0x12 det
samme som
18, som igjen er det samme som 022. Legg merke til at den oktale
notasjonen
kan vøre litt forvirrende: 08 og 09 er ikke gyldige tall, fordi 8
og 9 ikke
er gyldige oktale tall.
Bryteren /P lar deg angi verdien for en variabel fra en
inndatalinje som
angis av brukeren. Viser den angitte spørrestreng før
inndatalinjen leses.
Spørrestreng kan være tom.
Utskifting av miljøvariabler har følgende forbedringer:
%PATH:str1=str2%
Dette utvider miljøvariabelen PATH ved å bytte ut hvert tilfelle
av "str1" i
det utvidede resultatet med "str2". "Str2" kan være en tom streng
for på en
effektiv måte å slette alle tilfeller av "str1" fra de utvidede
utdataene.
"Str1" kan begynne med en stjerne (*), og vil da gi treff på alt
fra
begynnelsen av de utvidede utdataene til det første tilfellet av
resten av
str1.
Understrenger for en utvidelse kan også angis.
%PATH:~10,5%
Dette utvider miljøvariabelen PATH, og bruker deretter bare de 5
tegnene som
begynner ved det 11. tegnet (10 fra begynnelsen) i det utvidede
resultatet.
Hvis lengden ikke angis, brukes som standard resten av
variabelverdien. Hvis
et av tallene (avstand eller lengde) er negativt, er tallet som
brukes,
lengden på miljøvariabelverdien lagt til den angitte avstanden
eller lengden.
%PATH:~-10%
Dette tar ut de siste 10 tegnene fra PATH-variabelen.
%PATH:~0,-2%
Dette tar ut alle unntatt de 2 siste tegnene i PATH-variabelen.
Til slutt, støtte for forsinket utvidelse av miljøvariabler er
lagt til.
Denne støtten er alltid deaktivert som standard, men kan
aktiveres med
kommandolinjebryteren /V for Cmd.exe. Se CMD /?.
Forsinket utvidelse av miljøvariabler er nytting for å komme
rundt
begrensningene for gjeldende utvidelse, som forekommer når en
tekstlinje
leses, ikke når den kjøres. Følgende eksempel demonstrerer
problemet med
umiddelbar variabelutvidelse:
set VAR=før
if %VAR% == "før" (
set VAR=etter
if %VAR% == "etter" @echo Hvis du ser dette, virket det.
)
Dette vil aldri vise meldingen, siden %VAR% i BEGGE IF-setningene
byttes
når den første IF-setningen leses, fordi det logisk inkluderer
innholdet
i IF-setningen, som er en sammensatt setning. IFen inne i den
sammensatte
setningen sammenligner i virkeligheten "før" med "etter", og
disse vil aldri
bli like. På samme måte vil heller ikke dette eksemplet virke som
forventet:
set LIST=
for %i in (*) do set LIST=%LIST% %i
echo %LIST%
Dette fordi den IKKE vil bygge opp noen liste over filer i
gjeldende mappe,
men i stedet bare sette LIST-variabelen til den siste filen som
ble funnet.
Dette er fordi %LIST% bare utvides én gang når FOR-setningen
leses, og på
det tidspunktet er LIST-variabelen tom. Den FOR-løkken som
faktisk kjøres i
dette tilfellet er:
for %i in (*) do set LIST= %i
som stadig tilordner LIST navnet på den siste filen som ble
funnet.
Forsinket utvidelse av miljøvariabler lar deg bruke et annet tegn
(utropstegn)
for å utvide miljøvariabler under kjøring. Hvis forsinket
utvidelse av miljø-
variabler er aktivert, må eksemplene ovenfor skrives på denne
måten for at det
skal virke slik det var tenkt:
set VAR=før
if %VAR% == "før" (
set VAR=etter
if "!VAR!" == "etter" @echo Hvis du ser dette, virket
det.
)
set LIST=
for %i in (*) do set LIST=!LIST! %i
echo %LIST%
Hvis kommandoutvidelser er aktivert, finnes det flere dynamiske
miljøvariabler
som kan utvides, men som ikke finnes i listen over variabler som
vises av SET.
Disse variabelverdiene beregnes dynamisk hver gang verdien til
variablene
utvides. Hvis brukeren eksplisitt definerer en variabel med en av
disse
navnene, vil den definisjonen overstyre de dynamiske beskrevet
nedenfor:
%CD% - Utvider til strengen som inneholder gjeldende mappe.
%DATE% - Utvider til gjeldende dato med samme format som DATE.
%TIME% - Utvider til gjeldende klokkeslett med samme format som
TIME.
%RANDOM% - Utvider til et tilfeldig desimaltall mellom 0 og
32767.
%ERRORLEVEL% - Utvider til gjeldende ERRORLEVEL-verdi.
%CMDEXTVERSION% - Utvider til versjonsnummeret for gjeldende
kommando-
prosessorutvidelser.
%CMDCMDLINE% - Utvider til den opprinnelige kommandolinjen som
startet
kommandoprosessoren.
Viktig informasjon, tips for "SET"-kommandoen
Når du bruker
`SET`kommandoen i Windows-ledeteksten, er det noen viktige aspekter å merke seg:
1.
Overstyre miljøvariabler: Hvis du har en miljøvariabel med
`SET`Hvis du oppretter en miljøvariabel med samme navn som en eksisterende miljøvariabel, vil den eksisterende variabelen bli overskrevet. Pass på at du har tenkt å gjøre dette for å unngå uønskede effekter.
SET EKSISTERENDE_VARIABLE=Ny verdi
2.
Mellomrom i verdier: Når du setter verdier med mellomrom i miljøvariabler, er det lurt å sette verdien i doble anførselstegn. Dette bidrar til å unngå problemer med å tolke mellomrom.
SET VARIABLE_MED_ROM="Verdi med mellomrom"
3.
Vis alle miljøvariabler: Bare skriv inn
`SET`uten spesifikk variabel viser alle miljøvariabler og deres verdier. Dette kan være nyttig for å sikre at endringene ble gjort som forventet.
SET
4.
Angi miljøvariabler i batchskript: Hvis du angir miljøvariabler i et batchskript, bør du være oppmerksom på at variabelen vil bli åpnet senere i skriptet
`%Variable%`han følger.
SET NY_VARIABLE=Innhold
ECHO %NY_VARIABLE%
5.
Brukerinndata med`SET /P`: Hvis du
`SET /P`for brukerinnspill, sørg for at du tydelig spør brukeren og gir klare instruksjoner for å unngå forvirring.
SET /P BRUKEROPPGAVE=Skriv inn noe:
6.
Stilling av store og små bokstaver: Vær oppmerksom på at miljøvariabler vanligvis ikke skiller mellom store og små bokstaver. Det betyr at
`%Variable%`og
`%variable%`få tilgang til det samme.
Disse tipsene skal sikre at du
`SET`-Bruk kommandoer effektivt og sikkert.