setlocal

Inicia la localización de variables de entorno en un archivo por lotes. La localización continúa hasta que se encuentra un comando endlocal coincidente o se llega al final del archivo por lotes.

Sintaxis

setlocal [enableextensions | disableextensions] [enabledelayedexpansion | disabledelayedexpansion]

Parámetros

Parámetro Descripción
enableextensions Habilita las extensiones de comandos hasta que se encuentra el comando endlocal correspondiente, independientemente de la configuración anterior a la ejecución del comando setlocal.
disableextensions Deshabilita las extensiones de comandos hasta que se encuentra el comando endlocal correspondiente, independientemente de la configuración anterior a la ejecución del comando setlocal.
enabledelayedexpansion Habilita la expansión retardada de la variable de entorno hasta que se encuentre el comando endlocal correspondiente, independientemente de la configuración anterior a la ejecución del comando setlocal.
disabledelayedexpansion Deshabilita la expansión retardada de la variable de entorno hasta que se encuentre el comando endlocal correspondiente, independientemente de la configuración anterior a la ejecución del comando setlocal.
/? Muestra la ayuda en el símbolo del sistema.

Comentarios

  • Si usa setlocal fuera de un script o un archivo por lotes, no tiene ningún efecto.

  • Use setlocal para cambiar las variables de entorno al ejecutar un archivo por lotes. Los cambios de entorno realizados después de ejecutar setlocal son locales en el archivo por lotes. El programa Cmd.exe restaura la configuración anterior cuando encuentra un comando endlocal o llega al final del archivo por lotes.

  • Puede tener más de un comando setlocal o endlocal en un programa por lotes (es decir, comandos anidados).

  • El comando setlocal establece la variable ERRORLEVEL. Si se pasa {enableextensions | disableextensions} o {enabledelayedexpansion | disabledelayedexpansion}, la variable ERRORLEVEL se establece en 0. (cero). De lo contrario, se establece en 1. Puede usar esta información en scripts por lotes para determinar si las extensiones están disponibles, como se muestra en el siguiente ejemplo:

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

    Dado que cmd no establece la variable ERRORLEVEL cuando las extensiones de comandos están desactivadas, el comando verify inicializa la variable ERRORLEVEL en un valor distinto de cero cuando lo usa con un argumento no válido. Además, si usa el comando setlocal con los argumentos {enableextensions | disableextensions} o {enabledelayedexpansion | disabledelayedexpansion} y no establece la variable ERRORLEVEL en 1, las extensiones del comando no estarán disponibles.

Ejemplos

Para localizar variables de entorno en un archivo por lotes, siga este script de ejemplo:

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