Komento: "SETLOCAL" on päällä Windows 12, 11, 10, .. , MS Server 2025, 2022, 2019, .. saatavilla
Esimerkit komennosta "SETLOCAL"
The
`SETLOCAL`Windowsin komentokehotteessa olevaa komentoa käytetään ympäristömuuttujien asettamiseen paikallisesti erätiedostossa. Tässä on joitain esimerkkejä käytöstä
`SETLOCAL`:
Esimerkki 1: Aseta paikallinen ympäristömuuttuja:
@ECHO OFF
SETLOCAL
SET PAIKALLINEN_VARIABLE=Sisällys
ECHO %PAIKALLINEN_VARIABLE%
Kuvaus: Tässä esimerkissä ympäristömuuttuja
`PAIKALLINEN_VARIABLE`paikallisesti rajoitetulla alueella (läpi
`SETLOCAL`ja
`ENDLOCAL`) ja sitä voidaan käyttää vain tällä alueella.
Esimerkki 2: Palauta edelliseen tilaan:
@ECHO OFF
SET GLOBALE_VARIABLE=Global_Content
SETLOCAL
SET PAIKALLINEN_VARIABLE=Paikallinen sisältö
ECHO Paikallinen Variable: %PAIKALLINEN_VARIABLE%
ECHO Globale Variable: %GLOBALE_VARIABLE%
ENDLOCAL
ECHO Paikallinen Variable (paikallisesti rajoitetun alueen ulkopuolella): %PAIKALLINEN_VARIABLE%
Kuvaus: Tämä on paikallinen ympäristömuuttuja
`PAIKALLINEN_VARIABLE`asetettu ja käytetty paikallisesti rajoitetulla alueella. Jälkeen
`ENDLOCAL`komentosarja palaa edelliseen tilaan, eikä paikallinen muuttuja ole enää saatavilla paikallisen laajuuden ulkopuolella.
Esimerkki 3: Sisäkkäinen SETLOCAL:
@ECHO OFF
SETLOCAL
SET VARIABLE1=Arvo1
ECHO Sisäalue: %VARIABLE1%
SETLOCAL
SET VARIABLE2=Arvo2
ECHO Ulkoinen alue: %VARIABLE1%, %VARIABLE2%
ENDLOCAL
ECHO Paikallisen alueen ulkopuolella: %VARIABLE1%, %VARIABLE2%
Kuvaus: Tämä on paikka
`SETLOCAL`-Komento sisäkkäin kahdesti. Muuttuja
`VARIABLE2`näkyy vain paikallisella sisäalueella, kun taas
`VARIABLE1`näkyy ulko- ja sisäalueilla.
Esimerkki 4: Kehittyneen ympäristömuuttujien käsittelyn ottaminen käyttöön:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET VARIABLE=Sisällys
ECHO Ennen viivästymistä Expansion: %VARIABLE%
SET VARIABLE=Uusi_sisältö
ECHO Viivästymisen jälkeen Expansion: !VARIABLE!
Kuvaus: Käyttämällä
`ENABLEDELAYEDEXPANSION`voi ympäristömuuttujia huutomerkillä
`!`prosenttimerkkien sijaan
`%`voidaan käyttää viivästettyyn laajenemiseen.
The
`SETLOCAL`ympäristö sallii muuttujien asettamisen paikallisesti erätiedostolle, jolloin muutokset koskevat vain rajoitettua aluetta eivätkä globaalisti koko komentosarjaa. Tämä on erityisen hyödyllistä, jos haluat, että ympäristömuuttujien muutoksia rajoitetaan komentosarjan tietyssä osassa.
"SETLOCAL" Ote Microsoft Windowsin ohjeesta
Microsoft Windows [Version 10.0.19045.3693]
(c) Copyright 1985-2023 Microsoft Corp.
C:\\Windows>
Aloittaa ympäristön paikallisen muuttamisen
komentojonotiedostossa.
SETLOCAL-komennon jälkeen tehdyt ympäristömuutokset ovat
paikallisia
komentojonotiedostolle. Aiemmat asetukset täytyy palauttaa
ENDLOCAL-komennolla. Komentojonotiedoston päättyessä
komentojonossa
määritetyt avoimet SETLOCAL-komennot suljetaan ENDLOCAL-
komennolla.
SETLOCAL
Jos komentolaajennukset ovat käytössä, SETLOCAL-komento muuttuu
seuraavasti:
SETLOCAL-komento hyväksyy valinnaiset argumentit:
ENABLEEXTENSIONS tai DISABLEEXTENSIONS
Ottaa käyttöön tai poistaa käytöstä
komentolaajennukset.
Lisätietoja komennolla CMD /?.
ENABLEDELAYEDEXPANSION tai DISABLEDELAYEDEXPANSION
Ottaa käyttöön tai poistaa käytöstä viivästetyt
ympäristömuuttujalaajennukset. Lisätietoja komennolla
SET /?.
Nämä asetukset ovat voimassa seuraavaan ENDLOCAL-komentoon asti,
riippumatta komentolaajennusten SETLOCAL:ia edeltäneestä
asetuksesta.
Jos SETLOCAL-komennolle antaa argumentin, se asettaa ERRORLEVEL-
arvon.
Arvo on nolla, jos argumentti on tosi, ja muissa tapauksissa
yksi.
Tätä voi käyttää komentojonotiedostoissa selvittämään, ovatko
laajennukset käytettävissä:
VERIFY OTHER 2>nul
SETLOCAL ENABLEEXTENSIONS
IF ERRORLEVEL 1 echo Laajennuksia ei voida ottaa käyttöön
Komento toimii, koska CMD.EXE:n aiemmissa versioissa SETLOCAL ei
aseta
ERRORLEVEL-arvoa. VERIFY-komento virheellisellä argumentilla
alustaa
ERRORLEVEL-arvon nollasta poikkeavaksi.
Tärkeää tietoa, vinkkejä "SETLOCAL"-komennolle
Kyllä, on joitakin tärkeitä näkökohtia, jotka on otettava huomioon, kun olet
`SETLOCAL`komento Windowsin komentokehotteessa tai komentosarjoissa:
1.
Rajoitettu soveltamisala: `SETLOCAL`luo rajallisen kentän ympäristömuuttujille. Muutokset ympäristömuuttujiin tässä laajuudessa eivät vaikuta globaaliin ympäristöön tai muihin paikallisiin laajuuksiin. Ota huomioon, että
`SETLOCAL`ja
`ENDLOCAL`tulee käyttää pareittain.
SETLOCAL
REM ... Tässä ympäristömuuttujien muutokset ovat paikallisia
ENDLOCAL
2.
Peskitys: Voit
`SETLOCAL`pesä luodaksesi useita lokalisoituja alueita. Kaikki
`SETLOCAL`mutta sen pitäisi olla sopivan kanssa
`ENDLOCAL`lopetetaan.
SETLOCAL
REM Paikallinen sisäalue
SETLOCAL
REM Vielä syvemmällä paikallisella alueella
ENDLOCAL
ENDLOCAL
3.
Viiveellinen laajennus: Voit käyttää
`SETLOCAL ENABLEDELAYEDEXPANSION`aktivoi viivästynyt laajennus. Muuttuja on mukana
`!`sijasta
`%`mukana. Laiska laajennus mahdollistaa muuttujien arvioinnin ajon aikana, ei vain erätiedostoa luettaessa.
SETLOCAL ENABLEDELAYEDEXPANSION
SET VARIABLE=Sisällys
ECHO Ennen viivästymistä Expansion: %VARIABLE%
SET VARIABLE=Uusi_sisältö
ECHO Viivästymisen jälkeen Expansion: !VARIABLE!
ENDLOCAL
4.
Global Environment Variables: Muutokset ympäristömuuttujiin, jotka ovat a
`SETLOCAL`-scope eivät vaikuta laajuuden ulkopuolisiin globaaleihin ympäristömuuttujiin.
SET GLOBAL=Global_Content
SETLOCAL
SET GLOBAL=Paikallinen sisältö
ECHO Paikallisesti rajoitetun alueen sisällä: %GLOBAL%
ENDLOCAL
ECHO Paikallisen alueen ulkopuolella: %GLOBAL%
5.
Muutosten kumoaminen: Jos haluat kumota muutokset paikallisella alueella, palauta tilaan ennen
`SETLOCAL`takaisin sinun luoksesi
`ENDLOCAL`käyttää.
SETLOCAL
REM Muutoksia täällä
ENDLOCAL
REM Kumoa muutokset
On tärkeää,
`SETLOCAL`ja
`ENDLOCAL`käytettävä huolellisesti ja pareittain sen varmistamiseksi, että ympäristömuuttujat ovat oikein rajoitettuja ja niillä on odotetut vaikutukset.