Komento: "SET" on päällä Windows 12, 11, 10, .. , MS Server 2025, 2022, 2019, .. saatavilla
Esimerkit komennosta "SET"
The
`SET`Windowsin komentokehotteessa olevaa komentoa käytetään ympäristömuuttujien luomiseen, tarkastelemiseen tai muokkaamiseen. Tässä on joitain esimerkkejä käytöstä
`SET`-Komento:
Esimerkki 1: Luo uusi ympäristömuuttuja:
SET UUSI_VARIABLE=Sisällys
Kuvaus: Tämä komento luo uuden ympäristömuuttujan nimeltä
`UUSI_VARIABLE`ja arvo
`Sisällys`.
Esimerkki 2: Näytä olemassa oleva ympäristömuuttuja:
SET NYKYINEN_VARIABLE
Kuvaus: Tämä komento näyttää ympäristömuuttujan arvon
`NYKYINEN_VARIABLE`klo.
Esimerkki 3: Näytä kaikki ympäristömuuttujat:
SET
Kuvaus: Syöttämällä
`SET`ilman tiettyä muuttujaa, kaikki ympäristömuuttujat ja niiden arvot näytetään.
Esimerkki 4: Poista muuttuja:
SET UUSI_VARIABLE=
Kuvaus: Tämä on ympäristömuuttujan arvo
`UUSI_VARIABLE`poistettu.
Esimerkki 5: Muuttujan käyttäminen erätiedostossa:
ECHO %UUSI_VARIABLE%
Kuvaus: Tämä komento palauttaa ympäristömuuttujan arvon
`UUSI_VARIABLE`ulos. Erätiedostoissa syntaksi
`%Variable%`käytetään ympäristömuuttujan arvon saamiseksi.
Esimerkki 6: Tallenna käyttäjän syöte muuttujaan:
SET /P KÄYTTÄJÄPÄÄTÖS=Syötä jotain:
Kuvaus: Tämä komento kehottaa käyttäjää syöttämään jotain ja tallentaa syötteen ympäristömuuttujaan
`KÄYTTÄJÄPÄÄTÖS`.
Siinä on monia lisävaihtoehtoja ja ominaisuuksia
`SET`komento, mukaan lukien merkkijonomuutokset, ympäristömuuttujien käyttö eräkomentosarjoissa ja paljon muuta. Sisääntulosta
`SET /?`komentokehotteessa saat luettelon käytettävissä olevista vaihtoehdoista ja tarkempia tietoja.
"SET" Ote Microsoft Windowsin ohjeesta
Microsoft Windows [Version 10.0.19045.3693]
(c) Copyright 1985-2023 Microsoft Corp.
C:\\Windows>
Näyttää, asettaa tai poistaa CMD.EXE:n ympäristömuuttujia.
SET [muuttuja=[merkkijono]]
muuttuja Määrittää ympäristömuuttujan nimen.
merkkijono Määrittää muuttujan arvoksi annettavan sarjan
merkkejä.
SET ilman parametreja näyttää nykyiset ympäristömuuttujat.
Jos komentolaajennukset ovat käytössä, SET-komento muuttuu
seuraavasti:
Jos SET-komennolle annetaan parametrina muuttujan nimi ilman
yhtäsuuruus-
merkkiä tai arvoa, se näyttää kaikkien muuttujien arvon, joiden
nimi alkaa
SET-komennolle annetun parametrin merkeillä. Esimerkiksi:
SET P
näyttää kaikki ympäristömuuttujat, joiden nimi alkaa kirjaimella
"P".
SET-komento asettaa ERRORLEVEL:n arvoon 1 jos muuttujan arvoa ei
löydy
nykyisestä ympäristöstä.
SET-komento ei salli yhtäsuuruusmerkin (=) käyttöä muuttujassa.
SET-komentoon on lisätty kaksi uutta valitsinta:
SET /A lauseke
SET /P muuttuja=[promptString]
/A-valitsin edellyttää, että merkkijono yhtäsuuruusmerkin
oikealla
puolella on laskettava numeerinen lauseke. Lausekkeen laskenta on
melko
yksinkertaista. Se tukee seuraavia operaatioita esitettynä
alenevassa
laskentajärjestyksessä:
() - ryhmittely
! ~ - - unaarioperaattorit
* / % - aritmeettiset operaattorit
+ - - aritmeettiset operaattorit
<< >> - looginen siirto
& - bittitason JA
^ - bittitason poissulkeva TAI
| - bittitason TAI
= *= /= %= += -= - sijoitus
&= ^= |= <<= >>=
, - lauseke-erotin
Jos käytetään loogisia tai modulusoperaattoreita, lauseke tulee
sijoittaa
lainausmerkkeihin. Lausekkeessa olevia ei-numeerisia merkkijonoja
käsitellään
ympäristömuuttujina, joiden arvot muunnetaan numeroiksi ennen
käyttöä.
Jos ympäristömuuttujan nimi on annettu mutta ei määritetty
nykyisessä
ympäristössä, arvoa nolla käytetään. Tämä mahdollistaa
aritmeettiset
operaatiot ympäristömuuttujien arvoilla tarvitsematta käyttää %-
merkkejä
niiden arvojen hakemiseen. Jos SET /A suoritetaan komentoriviltä
komentojonotiedoston ulkopuolella, se näyttää lausekkeen
lopullisen
arvon. Sijoitusoperaattori edellyttää ympäristömuuttujan nimeä
sijoitusoperaattorin vasemmalle puolelle. Numeeriset arvot ovat
oletuksena
desimaalilukuja, ellei niitä edellä 0x (heksadesimaali) tai 0
(oktaali).
Täten 0x12 on sama kuin 18, joka on sama kuin 022. Huomaa, että
oktaalinotaatio voi aiheuttaa sekaannusta: 08 ja 09 eivät ole
kelvollisia
lukuja, koska 8 ja 9 eivät ole kelvollisia oktaalinumeroita.
/P-valitsimen avulla voit määrittää muuttujan, jonka käyttäjä
kirjoittaa
komentoriville. Käyttäjälle näytetään kehotemerkkijono ennen
muuttujan
kirjoittamista. Kehotemerkkijono voi olla tyhjä.
Ympäristömuuttujan korvaamista on parannettu seuraavasti:
%PATH:mjono1=mjono2%
laajentaa PATH-ympäristömuuttujan korvaten jokaisen mjono1-
esiintymän
mjono2-esiintymän laajennetulla tuloksella. Mjono2 voi olla
tyhjä,
jolloin se poistaa kaikki mjono1-esiintymät laajennetusta
tulostuksesta.
Mjono1 voi alkaa tähtimerkillä, jolloin se vastaa kaikkea
laajennetun
tulostuksen alusta lähtien ensimmäiseen mjono1:n loppuosan
esiintymään
saakka.
Laajennukselle voidaan määrittää myös alimerkkijonoja.
%PATH:~10,5%
laajentaa PATH-ympäristömuuttujan, mutta käyttää sitten vain 5
merkkiä,
jotka alkavat laajennetun tuloksen 11. merkistä (osoite 10). Jos
pituutta
ei määritetä, niin oletusarvo on muuttujan arvon jäljellä oleva
osa. Jos
jompikumpi luvuista (osoite tai pituus) on negatiivinen,
käytettävä luku
on ympäristömuuttujan pituus lisättynä määritetyn osoitteen tai
pituuden
arvolla.
%PATH:~-10%
purkaa PATH-muuttujan viimeiset 10 merkkiä.
%PATH:~0,-2%
purkaa kaikki paitsi kaksi viimeistä PATH-muuttujan merkkiä.
Viivästetty ympäristömuuttujalaajennus on lisätty. Tämä on
oletusarvoisesti aina poissa käytöstä, mutta voit ottaa sen
käyttöön tai poistaa sen käytöstä Cmd.exe-ohjelman /V-valitsimen
avulla. Katso CMD /?
Viivästetyn ympäristömuuttujalaajennuksen avulla voidaan kiertää
nykyisen laajennuksen rajoitukset, jotka aiheutuvat siitä, että
laajennus tapahtuu tekstiriviä luettaessa eikä riviä
suoritettaessa.
Seuraava esimerkki esittelee ongelman:
set VAR=ennen
if "%VAR%" == "ennen" (
set VAR=jälkeen;
if "%VAR%" == "jälkeen" @echo Jos näet tämän, se toimii
)
ei tuo näyttöön koskaan sanomaa, koska BOTH IF -käskyn %VAR%
korvataan, kun ensimmäinen IF-käsky luetaan, koska se sisältää
loogisesti IF-käskyn perusosan, joka on yhdistelmälause. Joten
IF-käsky yhdistelmälauseen sisällä vertailee todellisuudessa
ennen- ja jälkeen-merkkijonoja, jotka eivät koskaan vastaa
toisiaan. Samoin seuraavakaan esimerkki ei toimi odotetulla
tavalla:
set LIST=
for %i in (*) do set LIST=%LIST% %i
echo %LIST%
Esimerkki ei muodosta tiedostojen luetteloa nykyiseen kansioon,
vaan se määrittää LIST-muuttujan viimeiseen löydettyyn
tiedostoon.
Tämä johtuu taas siitä, että %LIST% laajennetaan vain kerran, kun
FOR-käsky luetaan, jolloin LIST-muuttuja on tyhjä.
Joten todellinen suoritettava FOR-silmukka on:
for %i in (*) do set LIST= %i
, joka vain määrittää LIST-muuttujan viimeiselle löydetylle
tiedostolle.
Viivästetyn ympäristömuuttujalaajennuksen avulla voit käyttää eri
merkkiä (huutomerkki) ympäristömuuttujien laajentamiseen
suorituksen
aikana. Jos viivästetty ympäristömuuttujalaajennus on käytössä,
yllä
oleva voidaan kirjoittaa seuraavasti:
set VAR=ennen
if "%VAR%" == "ennen" (
set VAR=jälkeen
if "!VAR!" == "jälkeen" @echo Jos näet tämän, se toimii
oikein
)
set LIST=
for %i in (*) do set LIST=!LIST! %i
echo %LIST%
Jos komentolaajennukset ovat käytössä, tällöin käytössä on useita
dynaamisia ympäristömuuttujia, jotka voidaan laajentaa mutta
jotka
eivät näy SET-komennon näyttämässä muuttujien luettelossa. Nämä
muuttuja-arvot lasketaan dynaamisesti joka kerta, kun muuttuja
laajennetaan. Jos käyttäjä määrittää täsmällisesti muuttujan
käyttäen
jotain näistä nimistä, määritys korvaa alla kuvatut dynaamiset
määritykset:
%CD% - Laajentaa nykyisen kansionimen merkkijonon.
%DATE% - Laajentaa nykyisen päivämäärän käyttämällä DATE-komennon
muotoa.
%TIME% - Laajentaa nykyisen ajan käyttämällä TIME-komennon
muotoa.
%RANDOM% - Laajentaa satunnaisen desimaaliluvun 0 - 32767.
%ERRORLEVEL% - Laajentaa nykyisen ERRORLEVEL-arvon
%CMDEXTVERSION% - Laajentaa nykyisen komentosuorittimen
laajennuksen
versionumeron.
%CMDCMDLINE% - laajentaa alkuperäisen komentorivin, joka
käynnisti
komentosuorittimen.
Tärkeää tietoa, vinkkejä "SET"-komennolle
Kun käytät
`SET`-komento Windowsin komentokehotteessa, on muutamia tärkeitä huomioitavia seikkoja:
1.
Ympäristömuuttujien ohittaminen: Jos sinulla on ympäristömuuttuja, jossa on
`SET`Jos luot ympäristömuuttujan käyttämällä samaa nimeä kuin olemassa oleva ympäristömuuttuja, olemassa oleva muuttuja korvataan. Varmista, että aiot tehdä tämän välttääksesi ei-toivotut vaikutukset.
SET NYKYINEN_VARIABLE=Uusi arvo
2.
Välyt arvoissa: Kun asetat arvoja, joissa ympäristömuuttujat sisältävät välilyöntejä, on suositeltavaa laittaa arvo lainausmerkkeihin. Tämä auttaa välttämään ongelmia välilyöntien tulkinnassa.
SET VARIABLE_KANSSA_TILA="Arvo välilyönnillä"
3.
Näytä kaikki ympäristömuuttujat: Kirjoita vain
`SET`ilman tiettyä muuttujaa näyttää kaikki ympäristömuuttujat ja niiden arvot. Tämä voi auttaa varmistamaan, että muutokset on tehty odotetulla tavalla.
SET
4.
Ympäristömuuttujien asettaminen eräkomentosarjassa: Jos asetat ympäristömuuttujat eräkomentosarjassa, huomioi, että muuttujaa käytetään myöhemmin komentosarjassa
`%Variable%`hän seuraa.
SET UUSI_VARIABLE=Sisällys
ECHO %UUSI_VARIABLE%
5.
Käyttäjän syötteen kanssa`SET /P`: Jos sinä
`SET /P`Varmista, että annat käyttäjälle selkeät ohjeet ja annat selkeät ohjeet sekaannusten välttämiseksi.
SET /P KÄYTTÄJÄPÄÄTÖS=Syötä jotain:
6.
Isot ja pienet kirjaimet: Huomaa, että ympäristömuuttujat eivät yleensä ole kirjainkoolla. Se tarkoittaa sitä
`%Variable%`ja
`%variable%`päästä samaan.
Näiden vinkkien pitäisi varmistaa, että
`SET`-Käytä komentoja tehokkaasti ja turvallisesti.