Il comando: "SETLOCAL" è attivo Windows 12, 11, 10, .. , MS Server 2025, 2022, 2019, .. disponibile
Gli esempi per il comando "SETLOCAL"
IL
`SETLOCAL`Il comando nel prompt dei comandi di Windows viene utilizzato per impostare le variabili di ambiente localmente in un file batch. Ecco alcuni esempi di utilizzo
`SETLOCAL`:
Esempio 1: imposta la variabile di ambiente locale:
@ECHO OFF
SETLOCAL
SET LOCALE_VARIABLE=Contenuti
ECHO %LOCALE_VARIABLE%
Descrizione: In questo esempio, la variabile di ambiente
`LOCALE_VARIABLE`all'interno dell'area localmente limitata (attraverso
`SETLOCAL`E
`ENDLOCAL`) e può essere utilizzato solo all'interno di questo intervallo.
Esempio 2: ripristino dello stato precedente:
@ECHO OFF
SET GLOBALE_VARIABLE=Contenuto_globale
SETLOCAL
SET LOCALE_VARIABLE=Contenuto locale
ECHO Locale Variable: %LOCALE_VARIABLE%
ECHO Globale Variable: %GLOBALE_VARIABLE%
ENDLOCAL
ECHO Locale Variable (al di fuori dell'area limitata localmente): %LOCALE_VARIABLE%
Descrizione: Questa è la variabile di ambiente locale
`LOCALE_VARIABLE`impostato e utilizzato all'interno dell'area limitata a livello locale. Dopo
`ENDLOCAL`lo script ritorna allo stato precedente e la variabile locale non è più disponibile al di fuori dell'ambito locale.
Esempio 3: annidamento SETLOCAL:
@ECHO OFF
SETLOCAL
SET VARIABLE1=Valore1
ECHO Zona interna: %VARIABLE1%
SETLOCAL
SET VARIABLE2=Valore2
ECHO Area esterna: %VARIABLE1%, %VARIABLE2%
ENDLOCAL
ECHO Fuori dal territorio locale: %VARIABLE1%, %VARIABLE2%
Descrizione: Qui è dove
`SETLOCAL`-Comando nidificato due volte. La variabile
`VARIABLE2`è visibile solo nella zona localizzata interna, mentre
`VARIABLE1`è visibile nelle aree esterne ed interne.
Esempio 4: abilitazione dell'elaborazione avanzata delle variabili di ambiente:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET VARIABLE=Contenuti
ECHO Prima del ritardo Expansion: %VARIABLE%
SET VARIABLE=Nuovo contenuto
ECHO Dopo il ritardo Expansion: !VARIABLE!
Descrizione: Utilizzando
`ENABLEDELAYEDEXPANSION`possono variabili d'ambiente con un punto esclamativo
`!`invece dei segni di percentuale
`%`essere utilizzato per l'espansione ritardata.
IL
`SETLOCAL`L'ambiente consente di impostare localmente le variabili per un file batch, applicando le modifiche solo a un'area limitata e non a livello globale all'intero script. Ciò è particolarmente utile se desideri che le modifiche alle variabili di ambiente siano limitate all'interno di una sezione specifica dello script.
"SETLOCAL" Estratto dalla guida di Microsoft Windows
Microsoft Windows [Version 10.0.19045.3693]
(c) Copyright 1985-2023 Microsoft Corp.
C:\\WINDOWS>
Comincia la localizzazione dei cambiamenti all'ambiente effettuati in
un file batch.
I cambiamenti all'ambiente effettuati dopo l'esecuzione di SETLOCAL
sono
locali al file batch.
ENDLOCAL va usato per ripristinare le impostazioni precedenti. Una
volta
erminato uno script batch, viene eseguito ENDLOCAL per ogni
comando SETLOCAL emesso dallo script batch.
SETLOCAL
Se le estensioni di comando sono abilitate, SETLOCAL è cambiata come
segue:
il comando batch SETLOCAL accetta ora argomenti facoltativi:
ENABLEEXTENSIONS / DISABLEEXTENSIONS
attiva e disattiva le estensioni del processore dei
comandi. Digitare
CMD /? per dettagli.
ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION
attiva o disattiva l'espansione ritardata della variabile
di ambiente. Digitare SET /? per dettagli.
Queste modifiche si eseguono fino all'esecuzione del comando ENDLOCAL
indipendentemente dalle impostazioni precedenti il comando SETLOCAL.
Il comando SETLOCAL imposterà il valore di ERRORLEVEL se è fornito un
argomento. Il valore sarà 0 se l'argomento è uno dei due valori validi,
altrimenti sarà 1. È possibile utilizzare questo comando nei programmi
batch
per determinare se le estensioni sono disponibili. A questo scopo
utilizzare la
seguente sequenza di comandi:
VERIFY ALTRO 2>nul
SETLOCAL ENABLEEXTENSIONS
IF ERRORLEVEL 1 echo Impossibile abilitare le estensioni
La correttezza della procedura di verifica si basa sul fatto che nelle
precedenti versioni di CMD.EXE SETLOCAL non impostava il valore di
ERRORLEVEL.
Il comando VERIFY seguito da un argomento non valido inizializza
ERRORLEVEL
ad un valore diverso da 0.
Informazioni importanti, suggerimenti per il comando "SETLOCAL"
Sì, ci sono alcuni aspetti importanti da considerare quando lo fai
`SETLOCAL`comando nel prompt dei comandi di Windows o negli script batch:
1.
Ambito limitato: `SETLOCAL`crea un ambito limitato per le variabili di ambiente. Le modifiche alle variabili di ambiente all'interno di questo ambito non influiscono sull'ambiente globale o su altri ambiti localizzati. Notare che
`SETLOCAL`E
`ENDLOCAL`dovrebbero essere usati in coppia.
SETLOCAL
REM ... Qui le modifiche alle variabili di ambiente sono locali
ENDLOCAL
2.
Nidificazione: Puoi
`SETLOCAL`nidificare per creare più aree localizzate. Tutti
`SETLOCAL`ma dovrebbe essere con uno appropriato
`ENDLOCAL`essere terminato.
SETLOCAL
REM Area localizzata interna
SETLOCAL
REM Area localizzata ancora più profonda
ENDLOCAL
ENDLOCAL
3.
Espansione ritardata: Puoi farlo con
`SETLOCAL ENABLEDELAYEDEXPANSION`attivare l'espansione ritardata. La variabile è inclusa
`!`invece di
`%`chiuso. L'espansione lenta consente di valutare le variabili in fase di esecuzione, non solo durante la lettura del file batch.
SETLOCAL ENABLEDELAYEDEXPANSION
SET VARIABLE=Contenuti
ECHO Prima del ritardo Expansion: %VARIABLE%
SET VARIABLE=Nuovo contenuto
ECHO Dopo il ritardo Expansion: !VARIABLE!
ENDLOCAL
4.
Variabili d'ambiente globali: modifiche alle variabili d'ambiente che si trovano all'interno di a
`SETLOCAL`-scope non influisce sulle variabili di ambiente globali esterne all'ambito.
SET GLOBAL=Contenuto_globale
SETLOCAL
SET GLOBAL=Contenuto locale
ECHO All'interno dell'area limitata localmente: %GLOBAL%
ENDLOCAL
ECHO Fuori dal territorio locale: %GLOBAL%
5.
Annullamento delle modifiche: se desideri annullare le modifiche in un'area localizzata, ripristina semplicemente lo stato precedente
`SETLOCAL`tornato da te
`ENDLOCAL`utilizzo.
SETLOCAL
REM Cambiamenti qui
ENDLOCAL
REM Annulla le modifiche
È importante,
`SETLOCAL`E
`ENDLOCAL`da utilizzare con attenzione e in coppia per garantire che le variabili di ambiente siano correttamente limitate e abbiano gli effetti attesi.