Il comando: "ENDLOCAL" è attivo Windows 12, 11, 10, .. , MS Server 2025, 2022, 2019, .. disponibile
Gli esempi per il comando "ENDLOCAL"
IL
`ENDLOCAL`Il comando viene utilizzato nel prompt dei comandi di Windows per terminare le variabili di ambiente locale associate a
`SETLOCAL`il comando è stato avviato. Ecco alcuni esempi:
Esempio 1: avvio e arresto dell'ambiente locale:
@ECHO OFF
SETLOCAL
SET Name=John
ECHO All'interno dell'ambiente locale: %Name%
ENDLOCAL
ECHO Fuori dal territorio locale: %Name%
Descrizione: Questo esempio avvia un ambiente locale con
`SETLOCAL`, definisce una variabile locale (
`Name`), stampa il valore all'interno e all'esterno dell'ambiente locale e quindi esce dall'ambiente locale con
`ENDLOCAL`.
Esempio 2: utilizzo di ENDLOCAL in un ciclo:
@ECHO OFF
FOR /L %%A IN (1, 1, 3) DO (
SETLOCAL
SET Counter=%%A
ECHO All'interno del circuito: %Counter%
ENDLOCAL
)
ECHO Fuori dal giro: %Counter%
Descrizione: Ecco
`SETLOCAL`utilizzato all'interno di un ciclo per creare un ambiente locale.
`ENDLOCAL`quindi termina l'ambiente locale alla fine di ogni iterazione del ciclo.
Esempio 3: ambiente locale con valore restituito:
@ECHO OFF
CALL :LocalFunction
ECHO Fuori funzione: %ReturnValue%
GOTO :EOF
:LocalFunction
SETLOCAL
SET ReturnValue=Questo è un valore di ritorno
ENDLOCAL & SET ReturnValue=%ReturnValue%
GOTO :EOF
Descrizione: Una funzione (
`:LocalFunction`) creato utilizzando un ambiente locale
`SETLOCAL`inizia e con
`ENDLOCAL`ho mandato. Il valore restituito viene utilizzato all'esterno della funzione.
Esempio 4: utilizzo di ENDLOCAL in un file batch:
@ECHO OFF
CALL :Start
ECHO Fuori funzione: %GlobalVariable%
GOTO :EOF
:Start
SETLOCAL
SET GlobalVariable=questo è un globale Variable
CALL :InnerFunction
ENDLOCAL & SET GlobalVariable=%GlobalVariable%
GOTO :EOF
:InnerFunction
SET LocalVariable=Questo è locale Variable
ECHO All'interno della funzione: %LocalVariable%
GOTO :EOF
Descrizione: Ecco
`SETLOCAL`nella funzione principale (
`:Start`) utilizzato per creare un ambiente locale. In questa funzione una sottofunzione (
`:InnerFunction`) chiamato.
`ENDLOCAL`viene utilizzato nella funzione main per uscire dall'ambiente locale durante l'aggiornamento del valore della variabile globale.
IL
`ENDLOCAL`L'istruzione termina l'ambiente locale e reimposta le variabili di ambiente sul valore precedente
`SETLOCAL`-Comando. Se desideri utilizzare una variabile d'ambiente dall'ambiente locale al di fuori di questo, dovresti farlo direttamente
`ENDLOCAL`Fare. Tieni presente che le variabili locali non sono disponibili al di fuori del loro ambiente locale.
"ENDLOCAL" Estratto dalla guida di Microsoft Windows
Microsoft Windows [Version 10.0.19045.3693]
(c) Copyright 1985-2023 Microsoft Corp.
C:\\WINDOWS>
Rende globali i cambiamenti all'ambiente effettuati in un file batch.
I cambiamenti all'ambiente effettuati dopo l'esecuzione di ENDLOCAL non
sono
locali al file batch. Le impostazioni precedenti non verranno
ripristinate
alla terminazione del file batch.
ENDLOCAL
Se le estensioni ai comandi sono abilitate, ENDLOCAL è cambiato come
segue:
se il corrispondente comando SETLOCAL aveva abilitato o disabilitato le
estensioni ai comandi utilizzando le nuove opzioni ENABLEEXTENSIONS o
DISABLEEXTENSIONS, dopo l'esecuzione di ENDLOCAL sarà ripristinato
lo stato (abilitato\disabilitato) precedente all'esecuzione del
SETLOCAL
corrispondente.
Informazioni importanti, suggerimenti per il comando "ENDLOCAL"
Quando si utilizza il
`ENDLOCAL`comando nel prompt dei comandi di Windows, ci sono alcuni punti importanti da notare:
1.
Variabili locali: `ENDLOCAL`termina un ambiente locale e tutte le variabili locali create in quell'ambiente vengono scartate. Queste variabili sono secondo
`ENDLOCAL`non più disponibile al di fuori dell'ambiente localizzato.
2.
Valori restituiti: Se desideri utilizzare valori provenienti da un ambiente locale esterno a questo, devi farlo immediatamente dopo
`ENDLOCAL`-Esegui il comando. Esempio:
SETLOCAL
SET LocalVar=Ciao
ENDLOCAL & SET OutsideVar=%LocalVar%
3.
Nidificato`SETLOCAL`/`ENDLOCAL`: Se tu
`SETLOCAL`utilizzato più volte in un file batch, ciascuno dovrebbe
`SETLOCAL`da uno corrispondente
`ENDLOCAL`essere seguito. Ogni
`ENDLOCAL`termina quello più vicino
`SETLOCAL`-Istruzioni.
4.
Ereditarietà delle variabili: le variabili create in un ambiente localizzato non vengono ereditate dagli ambienti principali. Gli ambienti locali sono generalmente visibili solo per il processo batch corrente.
5.
Ordine di esecuzione: `ENDLOCAL`viene eseguito nell'ordine in cui
`SETLOCAL`è stato chiamato. Ciò significa che l'ultimo ambiente localizzato viene prima
`ENDLOCAL`ho mandato.
6.
File batch e funzioni: nei file batch, gli ambienti localizzati vengono spesso utilizzati nelle funzioni. Quando si esce da una funzione, a
`ENDLOCAL`eseguita a meno che non sia stata utilizzata la funzione
`GOTO :EOF`O
`EXIT /B`Partire. In questo caso è consigliabile inserirlo manualmente
`ENDLOCAL`aggiungere.
7.
Utilizzo in loop: Se tu
`SETLOCAL`in un ciclo, viene creato un nuovo ambiente locale ogni volta che viene eseguito il ciclo. Assicurati che tu
`ENDLOCAL`correttamente per garantire che le variabili locali vengano rilasciate secondo necessità.
FOR /L %%A IN (1, 1, 3) DO (
SETLOCAL
SET LocalVar=Ciao
ECHO %LocalVar%
ENDLOCAL
)
8.
Risorse di processo: l'uso di
`SETLOCAL`E
`ENDLOCAL`può aiutare a conservare le risorse del processo, soprattutto quando molte variabili vengono definite e utilizzate in un file batch. Limitare l'ambito delle variabili a sezioni specifiche del codice consente di utilizzare le risorse di memoria in modo più efficiente.
In sintesi, è importante
`SETLOCAL`E
`ENDLOCAL`essere utilizzati con attenzione per garantire che le variabili siano gestite correttamente e gli ambienti localizzati siano gestiti correttamente. Ciò è particolarmente rilevante negli script o nelle funzioni batch complessi.