Kommandot: "ENDLOCAL" är på Windows 12, 11, 10, .. , MS Server 2025, 2022, 2019, .. tillgänglig
Exemplen för kommandot "ENDLOCAL"
De
`ENDLOCAL`kommandot används i Windows kommandotolk för att avsluta lokala miljövariabler som är associerade med
`SETLOCAL`kommando inleddes. Här är några exempel:
Exempel 1: Starta och stoppa lokal miljö:
@ECHO OFF
SETLOCAL
SET Name=John
ECHO Inom närmiljön: %Name%
ENDLOCAL
ECHO Utanför närområdet: %Name%
Beskrivning: Detta exempel börjar en lokal miljö med
`SETLOCAL`, definierar en lokal variabel (
`Name`), skriver ut värdet i och utanför den lokala miljön och lämnar sedan den lokala miljön med
`ENDLOCAL`.
Exempel 2: Använda ENDLOCAL i en loop:
@ECHO OFF
FOR /L %%A IN (1, 1, 3) DO (
SETLOCAL
SET Counter=%%A
ECHO Inne i slingan: %Counter%
ENDLOCAL
)
ECHO Utanför slingan: %Counter%
Beskrivning: Här är
`SETLOCAL`används inom en loop för att skapa en lokal miljö.
`ENDLOCAL`avslutar sedan den lokala miljön i slutet av varje loopiteration.
Exempel 3: Lokal miljö med returvärde:
@ECHO OFF
CALL :LocalFunction
ECHO Utan funktion: %ReturnValue%
GOTO :EOF
:LocalFunction
SETLOCAL
SET ReturnValue=Detta är ett returvärde
ENDLOCAL & SET ReturnValue=%ReturnValue%
GOTO :EOF
Beskrivning: En funktion (
`:LocalFunction`) skapad med hjälp av en lokal miljö
`SETLOCAL`börjar och med
`ENDLOCAL`Jag skickade. Returvärdet används utanför funktionen.
Exempel 4: Använda ENDLOCAL i en batchfil:
@ECHO OFF
CALL :Start
ECHO Utan funktion: %GlobalVariable%
GOTO :EOF
:Start
SETLOCAL
SET GlobalVariable=det här är en globale Variable
CALL :InnerFunction
ENDLOCAL & SET GlobalVariable=%GlobalVariable%
GOTO :EOF
:InnerFunction
SET LocalVariable=Detta är en lokal Variable
ECHO Inuti funktionen: %LocalVariable%
GOTO :EOF
Beskrivning: Här är
`SETLOCAL`i huvudfunktionen (
`:Start`) används för att skapa en lokal miljö. I denna funktion en underfunktion (
`:InnerFunction`) ringde.
`ENDLOCAL`används i huvudfunktionen för att lämna den lokala miljön samtidigt som värdet på den globala variabeln uppdateras.
De
`ENDLOCAL`uttalandet avslutar den lokala miljön och återställer miljövariablerna till värdet före
`SETLOCAL`-Kommando. Om du vill använda en miljövariabel från den lokala miljön utanför detta bör du göra det direkt
`ENDLOCAL`do. Observera att lokala variabler inte är tillgängliga utanför deras lokala miljö.
"ENDLOCAL" Utdrag från Microsoft Windows Hjälp
Microsoft Windows [Version 10.0.19045.3693]
(c) Copyright 1985-2023 Microsoft Corp.
C:\\Windows>
Avslutar lokala inställningar av miljövariabler i en kommandofil.
Ändringar som görs efter ENDLOCAL är inte lokala för
kommandofilen. De gamla inställningarna återställs inte
när kommandofilen är slut.
ENDLOCAL
Om kommandotilläggen är aktiverade ändras kommandot ENDLOCAL
enligt följande:
Om det matchande kommandot SETLOCAL har aktiverat eller
inaktiverat
kommandotilläggen med hjälp av de nya alternativen
ENABLEEXTENSIONS och
DISABLEEXTENSIONS, kommer ENDLOCAL att återställa tillståndet för
kommandotilläggen till vad det var innan kommandot SETLOCAL
kördes.
Viktig information, tips för kommandot "ENDLOCAL"
När du använder
`ENDLOCAL`kommandot i Windows kommandotolk finns det några viktiga punkter att notera:
1.
Lokala variabler: `ENDLOCAL`avslutar en lokal miljö och alla lokala variabler som skapats i den miljön kasseras. Dessa variabler är enligt
`ENDLOCAL`inte längre tillgänglig utanför den lokala miljön.
2.
Returvärden: Om du vill använda värden från en lokal miljö utanför denna måste du göra det omedelbart efter
`ENDLOCAL`- Gör kommando. Exempel:
SETLOCAL
SET LocalVar=Hallå
ENDLOCAL & SET OutsideVar=%LocalVar%
3.
Inkapslade`SETLOCAL`/`ENDLOCAL`: Om du
`SETLOCAL`används flera gånger i en batchfil, var och en bör
`SETLOCAL`från en motsvarande
`ENDLOCAL`följas. Varje
`ENDLOCAL`slutar den närmaste
`SETLOCAL`-Instruktion.
4.
Variabelärvning: Variabler som skapats i en lokaliserad miljö ärvs inte till överordnade miljöer. Lokala miljöer är vanligtvis bara synliga för den aktuella batchprocessen.
5.
Utförandeorder: `ENDLOCAL`utförs i den ordning som
`SETLOCAL`kallades. Det betyder att den sista lokaliserade miljön kommer först
`ENDLOCAL`Jag skickade.
6.
Batchfiler och funktioner: I batchfiler används ofta lokaliserade miljöer i funktioner. När du avslutar en funktion, a
`ENDLOCAL`utförs om inte funktionen användes
`GOTO :EOF`eller
`EXIT /B`lämna. I detta fall är det lämpligt att ange manuellt
`ENDLOCAL`tillägga.
7.
Använd i loopar: Om du
`SETLOCAL`i en loop skapas en ny lokal miljö varje gång loopen körs. Se till att du
`ENDLOCAL`korrekt för att säkerställa att de lokala variablerna släpps efter behov.
FOR /L %%A IN (1, 1, 3) DO (
SETLOCAL
SET LocalVar=Hallå
ECHO %LocalVar%
ENDLOCAL
)
8.
Processresurser: Användningen av
`SETLOCAL`och
`ENDLOCAL`kan hjälpa till att spara processresurser, särskilt när många variabler definieras och används i en batchfil. Genom att begränsa omfattningen av variabler till specifika kodavsnitt kan minnesresurser användas mer effektivt.
Sammanfattningsvis är det viktigt
`SETLOCAL`och
`ENDLOCAL`användas noggrant för att säkerställa att variabler hanteras korrekt och lokaliserade miljöer hanteras korrekt. Detta är särskilt relevant i komplexa batchskript eller funktioner.