Indica l'inizio delle modifiche locali dell'ambiente in un file batch. Le modifiche dell'ambiente specificate dopo il comando SETLOCAL sono locali rispetto al file batch. Per ripristinare le impostazioni precedenti è necessario utilizzare ENDLOCAL. Al termine di uno script batch viene eseguito un comando ENDLOCAL implicito per ogni comando SETLOCAL privo di ENDLOCAL eseguito dallo script batch.
SETLOCAL
Se le estensioni dei comandi sono attivate, il comando SETLOCAL verrà modificato come segue:
Il comando batch SETLOCAL accetta ora gli argomenti facoltativi seguenti:
ENABLEEXTENSIONS / DISABLEEXTENSIONS
Attiva o Disattiva le estensioni del processore dei comandi.
Questi argomenti hanno la precedenza sulle opzioni CMD /E:ON
o /E:OFF. Digitare CMD /? per ulteriori informazioni.
ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION
Attiva o disattiva l'espansione ritardata delle variabili di
ambiente. Questi argomenti hanno la precedenza sulle opzioni
CDM /V:ON o /V:OFF. Digitare CMD /? per ulteriori informazioni.
Tali modifiche hanno effetto fino al comando ENDLOCAL corrispondente, indipendentemente dalle impostazioni che precedono il comando SETLOCAL.
Se si specifica un argomento, il comando SETLOCAL imposterà il valore di ERRORLEVEL. Tale valore sarà 0 se l'argomento è uno dei due valori validi, 1 in caso contrario. È possibile utilizzare questo comando negli script batch per determinare se le estensioni sono disponibili. A tale scopo, utilizzare la procedura seguente:
VERIFY OTHER 2>nul
SETLOCAL ENABLEEXTENSIONS
IF ERRORLEVEL 1 echo Impossibile attivare le estensioni
Questa procedura funziona perché, nelle versioni precedenti di CMD.EXE, SETLOCAL non imposta il valore di ERRORLEVEL. Il comando VERIFY seguito da un argomento non valido inizializza ERRORLEVEL su un valore diverso da 0.
elenco comandi dos >