setlocal

Avvia la localizzazione delle variabili di ambiente in un file batch. Localizzazione continua fino a quando un corrispondente endlocal del comando o viene raggiunta la fine del file batch.

Sintassi

setlocal [enableextensions | disableextensions] [enabledelayedexpansion | disabledelayedexpansion]

Parametri

Parametro Descrizione
ENABLEEXTENSIONS Abilita le estensioni ai comandi fino a corrispondenti endlocal comando viene rilevato, indipendentemente dall'impostazione prima il setlocal comando è stato eseguito.
DISABLEEXTENSIONS Disabilita le estensioni ai comandi fino a quando la corrispondenza endlocal comando viene rilevato, indipendentemente dall'impostazione prima di setlocal comando è stato eseguito.
ENABLEDELAYEDEXPANSION Consente l'espansione della variabile di ambiente ritardata fino a quando la corrispondenza endlocal comando viene rilevato, indipendentemente dall'impostazione prima di setlocal comando è stato eseguito.
DISABLEDELAYEDEXPANSION Disabilita l'espansione della variabile di ambiente ritardata fino a quando la corrispondenza endlocal comando viene rilevato, indipendentemente dall'impostazione prima di setlocal comando è stato eseguito.
/? Visualizza la guida al prompt dei comandi.

Osservazioni:

  • Se si utilizza setlocal al di fuori di uno script o di un file batch, non ha alcun effetto.

  • Utilizzare setlocal per modificare le variabili di ambiente quando si esegue un file batch. Le modifiche apportate dopo l'esecuzione dell'ambiente setlocal sono locali rispetto al file batch. Il programma Cmd.exe Ripristina le impostazioni precedenti quando rileva un endlocal comando o raggiunge la fine del file batch.

  • È possibile avere più di una setlocal o endlocal comando in un file batch (vale a dire nidificati comandi).

  • Il setlocal comando imposta la variabile ERRORLEVEL. Se si passa {enableextensions | disableextensions} o {enabledelayedexpansion | disabledelayedexpansion}, la variabile ERRORLEVEL è impostata su 0 (zero). In caso contrario, è impostato su 1. È possibile utilizzare queste informazioni negli script batch per determinare se le estensioni sono disponibili, come illustrato nell'esempio seguente:

    verify other 2>nul
    setlocal enableextensions
    if errorlevel 1 echo Unable to enable extensions
    

    Poiché cmd non è impostata la variabile ERRORLEVEL quando le estensioni ai comandi sono disabilitate, il verificare comando Inizializza la variabile ERRORLEVEL su un valore diverso da zero quando viene usato con un argomento non valido. Inoltre, se si utilizza il setlocal comando con argomenti {enableextensions | disableextensions} o {enabledelayedexpansion | disabledelayedexpansion} e non imposta la variabile ERRORLEVEL su 1, le estensioni ai comandi non sono disponibili.

Esempi

Per localizzare le variabili di ambiente in un file batch, seguire questo script di esempio:

rem *******Begin Comment**************
rem This program starts the superapp batch program on the network,
rem directs the output to a file, and displays the file
rem in Notepad.
rem *******End Comment**************
@echo off
setlocal
path=g:\programs\superapp;%path%
call superapp>c:\superapp.out
endlocal
start notepad c:\superapp.out