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