Het commando: "ECHO" staat aan Windows 12, 11, 10, .. , MS Server 2025, 2022, 2019, .. beschikbaar
De voorbeelden voor het commando "ECHO"
De
`ENDLOCAL`opdracht wordt gebruikt in de Windows-opdrachtprompt om lokale omgevingsvariabelen te beëindigen die zijn gekoppeld aan de
`SETLOCAL`opdracht werd gestart. Hier zijn enkele voorbeelden:
Voorbeeld 1: Lokale omgeving starten en stoppen:
@ECHO OFF
SETLOCAL
SET Name=John
ECHO Binnen de lokale omgeving: %Name%
ENDLOCAL
ECHO Buiten de lokale omgeving: %Name%
Beschrijving: Dit voorbeeld begint een lokale omgeving met
`SETLOCAL`, definieert een lokale variabele (
`Name`), drukt de waarde binnen en buiten de lokale omgeving af en verlaat vervolgens de lokale omgeving met
`ENDLOCAL`.
Voorbeeld 2: ENDLOCAL in een lus gebruiken:
@ECHO OFF
FOR /L %%A IN (1, 1, 3) DO (
SETLOCAL
SET Counter=%%A
ECHO Binnen de lus: %Counter%
ENDLOCAL
)
ECHO Buiten de lus: %Counter%
Beschrijving: Hier is het
`SETLOCAL`gebruikt binnen een lus om een lokale omgeving te creëren.
`ENDLOCAL`beëindigt vervolgens de lokale omgeving aan het einde van elke lus-iteratie.
Voorbeeld 3: Lokale omgeving met retourwaarde:
@ECHO OFF
CALL :LocalFunction
ECHO Buiten functie: %ReturnValue%
GOTO :EOF
:LocalFunction
SETLOCAL
SET ReturnValue=Dit is een retourwaarde
ENDLOCAL & SET ReturnValue=%ReturnValue%
GOTO :EOF
Beschrijving: Een functie (
`:LocalFunction`) gemaakt met behulp van een lokale omgeving
`SETLOCAL`begint en met
`ENDLOCAL`ik verzond. De retourwaarde wordt buiten de functie gebruikt.
Voorbeeld 4: ENDLOCAL gebruiken in een batchbestand:
@ECHO OFF
CALL :Start
ECHO Buiten functie: %GlobalVariable%
GOTO :EOF
:Start
SETLOCAL
SET GlobalVariable=dit is een globale Variable
CALL :InnerFunction
ENDLOCAL & SET GlobalVariable=%GlobalVariable%
GOTO :EOF
:InnerFunction
SET LocalVariable=Dit is een lokale Variable
ECHO Binnen de functie: %LocalVariable%
GOTO :EOF
Beschrijving: Hier is het
`SETLOCAL`in de hoofdfunctie (
`:Start`) gebruikt om een lokale omgeving te creëren. In deze functie is een subfunctie (
`:InnerFunction`) genaamd.
`ENDLOCAL`wordt in de hoofdfunctie gebruikt om de lokale omgeving te verlaten terwijl de waarde van de globale variabele wordt bijgewerkt.
De
`ENDLOCAL`statement beëindigt de lokale omgeving en zet de omgevingsvariabelen terug naar de vorige waarde
`SETLOCAL`-Commando. Als u daarbuiten een omgevingsvariabele uit de lokale omgeving wilt gebruiken, moet u dat rechtstreeks doen
`ENDLOCAL`Doen. Houd er rekening mee dat lokale variabelen niet beschikbaar zijn buiten hun lokale omgeving.
"ECHO" Fragment uit Microsoft Windows Help
Microsoft Windows [Version 10.0.19045.3693]
(c) Copyright 1985-2023 Microsoft Corp.
C:\\Windows>
Beëindigt lokalisatie van omgevingsvariabelen in een
batchbestand.
Omgevingswijzigingen gemaakt na ENDLOCAL zijn niet alleen geldig
binnen
het batchbestand, maar ook nadat het batchbestand is beëindigd.
ENDLOCAL
Als opdrachtextensies zijn ingeschakeld, verandert ENDLOCAL als
volgt:
Als bijbehorende SETLOCAL opdrachtextensies in- of uitschakelt
via
de nieuwe opties ENABLEEXTENSIONS of DISABLEEXTENSIONS, wordt na
de
opdracht ENDLOCAL de ingeschakelde/uitgeschakelde toestand van
opdrachtextensies teruggezet naar de toestand voor uitvoering van
bijbehorende opdracht SETLOCAL.
Belangrijke informatie, tips voor het "ECHO" commando
Bij gebruik van de
`ENDLOCAL`opdracht in de Windows-opdrachtprompt, zijn er een paar belangrijke punten waar u rekening mee moet houden:
1.
Lokale variabelen: `ENDLOCAL`beëindigt een lokale omgeving en alle lokale variabelen die in die omgeving zijn gemaakt, worden verwijderd. Deze variabelen zijn volgens
`ENDLOCAL`niet langer beschikbaar buiten de gelokaliseerde omgeving.
2.
Retourwaarden: Als u waarden uit een lokale omgeving daarbuiten wilt gebruiken, moet u dit direct daarna doen
`ENDLOCAL`-Doe het bevel. Voorbeeld:
SETLOCAL
SET LocalVar=Hallo
ENDLOCAL & SET OutsideVar=%LocalVar%
3.
Genest`SETLOCAL`/`ENDLOCAL`: Als jij
`SETLOCAL`meerdere keren gebruikt in een batchbestand, elk zou dat moeten doen
`SETLOCAL`van een overeenkomstige
`ENDLOCAL`gevolgd worden. Elk
`ENDLOCAL`eindigt de dichtstbijzijnde
`SETLOCAL`-Instructie.
4.
Variabele-overname: Variabelen die in een gelokaliseerde omgeving zijn gemaakt, worden niet overgenomen naar bovenliggende omgevingen. Lokale omgevingen zijn doorgaans alleen zichtbaar voor het huidige batchproces.
5.
Executiebevel: `ENDLOCAL`wordt uitgevoerd in de volgorde waarin
`SETLOCAL`heette. Dit betekent dat de laatste gelokaliseerde omgeving op de eerste plaats komt
`ENDLOCAL`ik verzond.
6.
Batchbestanden en functies: In batchbestanden worden vaak gelokaliseerde omgevingen gebruikt in functies. Wanneer u een functie afsluit, a
`ENDLOCAL`uitgevoerd tenzij de functie werd gebruikt
`GOTO :EOF`of
`EXIT /B`vertrekken. In dit geval is het raadzaam om handmatig in te voeren
`ENDLOCAL`toevoegen.
7.
Gebruik in loops: Als je
`SETLOCAL`in een lus wordt elke keer dat de lus wordt uitgevoerd een nieuwe lokale omgeving gecreëerd. Zorg ervoor dat je
`ENDLOCAL`correct om ervoor te zorgen dat de lokale variabelen indien nodig worden vrijgegeven.
FOR /L %%A IN (1, 1, 3) DO (
SETLOCAL
SET LocalVar=Hallo
ECHO %LocalVar%
ENDLOCAL
)
8.
Procesbronnen: Het gebruik van
`SETLOCAL`En
`ENDLOCAL`kan helpen bij het besparen van procesbronnen, vooral wanneer er veel variabelen zijn gedefinieerd en gebruikt in een batchbestand. Door de reikwijdte van variabelen te beperken tot specifieke delen van de code kunnen geheugenbronnen efficiënter worden gebruikt.
Kortom, het is belangrijk
`SETLOCAL`En
`ENDLOCAL`zorgvuldig worden gebruikt om ervoor te zorgen dat variabelen op de juiste manier worden afgehandeld en dat gelokaliseerde omgevingen op de juiste manier worden beheerd. Dit is met name relevant bij complexe batchscripts of -functies.