Kommandoen: "ENDLOCAL" er tændt Windows 12, 11, 10, .. , MS Server 2025, 2022, 2019, .. tilgængelig
Eksempler på kommandoen "ENDLOCAL"
Det
`ENDLOCAL`kommandoen bruges i Windows-kommandoprompten til at afslutte lokale miljøvariabler forbundet med
`SETLOCAL`kommando blev indledt. Her er nogle eksempler:
Eksempel 1: Start og stop lokalt miljø:
@ECHO OFF
SETLOCAL
SET Name=John
ECHO Inden for lokalmiljøet: %Name%
ENDLOCAL
ECHO Uden for lokalområdet: %Name%
Beskrivelse: Dette eksempel starter et lokalt miljø med
`SETLOCAL`, definerer en lokal variabel (
`Name`), udskriver værdien i og uden for lokalmiljøet og forlader derefter lokalmiljøet med
`ENDLOCAL`.
Eksempel 2: Brug af ENDLOCAL i en loop:
@ECHO OFF
FOR /L %%A IN (1, 1, 3) DO (
SETLOCAL
SET Counter=%%A
ECHO Inde i løkken: %Counter%
ENDLOCAL
)
ECHO Uden for løkken: %Counter%
Beskrivelse: Her er
`SETLOCAL`bruges i en loop til at skabe et lokalt miljø.
`ENDLOCAL`afslutter derefter det lokale miljø i slutningen af hver loop-iteration.
Eksempel 3: Lokalt miljø med returværdi:
@ECHO OFF
CALL :LocalFunction
ECHO Ude af funktion: %ReturnValue%
GOTO :EOF
:LocalFunction
SETLOCAL
SET ReturnValue=Dette er en returværdi
ENDLOCAL & SET ReturnValue=%ReturnValue%
GOTO :EOF
Beskrivelse: En funktion (
`:LocalFunction`) oprettet ved hjælp af et lokalt miljø
`SETLOCAL`begynder og med
`ENDLOCAL`er afsluttet. Returværdien bruges uden for funktionen.
Eksempel 4: Brug af ENDLOCAL i en batchfil:
@ECHO OFF
CALL :Start
ECHO Ude af funktion: %GlobalVariable%
GOTO :EOF
:Start
SETLOCAL
SET GlobalVariable=dette er en globale Variable
CALL :InnerFunction
ENDLOCAL & SET GlobalVariable=%GlobalVariable%
GOTO :EOF
:InnerFunction
SET LocalVariable=Dette er en lokal Variable
ECHO Inde i funktionen: %LocalVariable%
GOTO :EOF
Beskrivelse: Her er
`SETLOCAL`i hovedfunktionen (
`:Start`) bruges til at skabe et lokalt miljø. I denne funktion en underfunktion (
`:InnerFunction`) hedder.
`ENDLOCAL`bruges i hovedfunktionen til at forlade det lokale miljø, mens værdien af den globale variabel opdateres.
Det
`ENDLOCAL`sætning afslutter det lokale miljø og nulstiller miljøvariablerne til værdien før
`SETLOCAL`-Kommando. Hvis du vil bruge en miljøvariabel fra det lokale miljø uden for dette, skal du gøre det direkte
`ENDLOCAL`gør. Bemærk, at lokale variabler ikke er tilgængelige uden for deres lokale miljø.
"ENDLOCAL" Uddrag fra Microsoft Windows Hjælp
Microsoft Windows [Version 10.0.19045.3693]
(c) Copyright 1985-2023 Microsoft Corp.
C:\\Windows>
Afslutter muligheden for lokale ændringer af miljøvariabler i
en batchfil.
Miljøændringer, som udføres efter ENDLOCAL er kaldt,
er ikke lokale i batchfilen.
De tidligere indstillinger bliver ikke gendannet,
når batchfilen er afsluttet.
ENDLOCAL
Hvis kommandoudvidelserne er aktiveret, ændres ENDLOCAL på
følgende
måde:
Hvis de tilsvarende SETLOCAL-kommandoudvidelser til aktivering
eller
deaktivering bruger de nye ENABLEEXTENSIONS- eller
DISABLEEXTENSIONS-
indstillinger, vil kommandoudvidelsernes
aktiverings/deaktiverings-
tilstand efter ENDLOCAL blive gendannet til, hvad den var før den
tilsvarende eksekvering af SETLOCAL-kommandoen.
Vigtig information, tip til kommandoen "ENDLOCAL"
Ved brug af
`ENDLOCAL`kommando i Windows kommandoprompt, er der et par vigtige punkter at bemærke:
1.
Lokale variabler: `ENDLOCAL`afslutter et lokalt miljø, og alle lokale variabler, der er oprettet i det miljø, kasseres. Disse variabler er iflg
`ENDLOCAL`ikke længere tilgængelig uden for det lokale miljø.
2.
Returværdier: Ønsker du at bruge værdier fra et lokalt miljø uden for dette, skal du gøre det umiddelbart efter
`ENDLOCAL`- Udfør kommando. Eksempel:
SETLOCAL
SET LocalVar=Hej
ENDLOCAL & SET OutsideVar=%LocalVar%
3.
Indlejret`SETLOCAL`/`ENDLOCAL`: Hvis du
`SETLOCAL`bruges flere gange i en batch-fil, hver skal
`SETLOCAL`fra en tilsvarende
`ENDLOCAL`følges. Hver
`ENDLOCAL`ender den nærmeste
`SETLOCAL`-Instruktion.
4.
Variabelarv: Variabler, der er oprettet i et lokaliseret miljø, nedarves ikke til overordnede miljøer. Lokale miljøer er normalt kun synlige for den aktuelle batchproces.
5.
Udførelsesordre: `ENDLOCAL`udføres i den rækkefølge, hvori
`SETLOCAL`blev kaldt. Det betyder, at det sidste lokaliserede miljø kommer først
`ENDLOCAL`er afsluttet.
6.
Batchfiler og funktioner: I batchfiler bruges lokaliserede miljøer ofte i funktioner. Når du afslutter en funktion, a
`ENDLOCAL`udføres, medmindre funktionen blev brugt
`GOTO :EOF`eller
`EXIT /B`forlade. I dette tilfælde er det tilrådeligt at indtaste manuelt
`ENDLOCAL`at tilføje.
7.
Brug i sløjfer: Hvis du
`SETLOCAL`i en løkke oprettes et nyt lokalt miljø, hver gang løkken køres. Sørg for, at du
`ENDLOCAL`korrekt for at sikre, at de lokale variable frigives efter behov.
FOR /L %%A IN (1, 1, 3) DO (
SETLOCAL
SET LocalVar=Hej
ECHO %LocalVar%
ENDLOCAL
)
8.
Procesressourcer: Brugen af
`SETLOCAL`og
`ENDLOCAL`kan hjælpe med at spare procesressourcer, især når mange variabler er defineret og brugt i en batchfil. Ved at begrænse omfanget af variabler til specifikke kodesektioner kan hukommelsesressourcer bruges mere effektivt.
Sammenfattende er det vigtigt
`SETLOCAL`og
`ENDLOCAL`bruges omhyggeligt for at sikre, at variabler håndteres korrekt, og lokaliserede miljøer administreres korrekt. Dette er især relevant i komplekse batch-scripts eller funktioner.