El comando: "SETLOCAL" está activado Windows 12, 11, 10, .. , MS Server 2025, 2022, 2019, .. disponible
Los ejemplos del comando "SETLOCAL"
El
`SETLOCAL`El comando en el símbolo del sistema de Windows se usa para configurar variables de entorno localmente en un archivo por lotes. A continuación se muestran algunos ejemplos de cómo utilizar
`SETLOCAL`:
Ejemplo 1: establecer la variable de entorno local:
@ECHO OFF
SETLOCAL
SET LOCAL_VARIABLE=Contenido
ECHO %LOCAL_VARIABLE%
Descripción: En este ejemplo, la variable de entorno
`LOCAL_VARIABLE`dentro del área localmente limitada (a través de
`SETLOCAL`y
`ENDLOCAL`) y sólo se puede utilizar dentro de este rango.
Ejemplo 2: Restablecer al estado anterior:
@ECHO OFF
SET GLOBALE_VARIABLE=Contenido_global
SETLOCAL
SET LOCAL_VARIABLE=Contenido local
ECHO Local Variable: %LOCAL_VARIABLE%
ECHO Globale Variable: %GLOBALE_VARIABLE%
ENDLOCAL
ECHO Local Variable (fuera del área localmente limitada): %LOCAL_VARIABLE%
Descripción: Esta es la variable de entorno local
`LOCAL_VARIABLE`establecido y utilizado dentro del área limitada localmente. Después
`ENDLOCAL`el script vuelve al estado anterior y la variable local ya no está disponible fuera del ámbito local.
Ejemplo 3: Anidamiento SETLOCAL:
@ECHO OFF
SETLOCAL
SET VARIABLE1=Valor1
ECHO zona interior: %VARIABLE1%
SETLOCAL
SET VARIABLE2=Valor2
ECHO Área externa: %VARIABLE1%, %VARIABLE2%
ENDLOCAL
ECHO Fuera del área local: %VARIABLE1%, %VARIABLE2%
Descripción: Aquí es donde
`SETLOCAL`-Comando anidado dos veces. La variable
`VARIABLE2`sólo es visible en el área interior localizada, mientras que
`VARIABLE1`es visible en las áreas externas e internas.
Ejemplo 4: Habilitación del procesamiento avanzado de variables de entorno:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET VARIABLE=Contenido
ECHO Antes retrasado Expansion: %VARIABLE%
SET VARIABLE=Nuevo contenido
ECHO Después del retraso Expansion: !VARIABLE!
Descripción: Al usar
`ENABLEDELAYEDEXPANSION`¿Pueden las variables de entorno con un signo de exclamación?
`!`en lugar de signos de porcentaje
`%`usarse para expansión retardada.
El
`SETLOCAL`El entorno permite configurar variables localmente para un archivo por lotes, haciendo que los cambios solo se apliquen a un área limitada y no globalmente a todo el script. Esto es particularmente útil si desea que los cambios en las variables de entorno se limiten a una sección específica del script.
"SETLOCAL" Extracto de la ayuda de Microsoft Windows
Microsoft Windows [Version 10.0.19045.3693]
(c) Copyright 1985-2023 Microsoft Corp.
C:\\WINDOWS>
Comienza la sección de cambios locales de entorno en
un archivo por lotes. Los cambios de entorno
hechos después de que se haya emitido SETLOCAL son
locales en el archivo por lotes.
ENDLOCAL debe ser emitido para restaurar la
configuración anterior. Cuando se llega al final de
un archivo de secuencias de comandos por lotes, se
ejecuta un ENDLOCAL implícito para cualquier comando SETLOCAL
pendiente que se haya emitido para este
archivo de secuencias de comandos por lotes.
SETLOCAL
Si las extensiones de comandos están habilitadas SETLOCAL cambia
así:
Ahora el comando del archivo por lotes SETLOCAL acepta argumentos
opcionales:
ENABLEEXTENSIONS / DISABLEEXTENSIONS
Habilitar o deshabilitar las extensiones del procesador de
comandos.
Ver CMD /? para más detalles
ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION
Habilita o deshabilita la expansión de la variable de
entorno retardada. Ver SET /? para más detalles. Estas
modificaciones duran hasta que coincida el comando ENDLOCAL,
independientemente de su configuración anterior
para el comando SETLOCAL.
El comando SETLOCAL establecerá el valor ERRORLEVEL si se diera
un argumento.
Será cero si se da uno de los dos argumentos válidos y el otro
no.
Puede usar esto en los archivos de proceso por lotes para
determinar si las extensiones están disponibles usando la
siguiente técnica:
VERIFY OTHER 2>null
SETLOCAL ENABLEEXTENSIONS
IF ERRORLEVEL 1 echo No puede activar las extensiones
Esto funciona porque en las versiones anteriores de CMD.EXE,
SETLOCAL no establecía el valor de ERRORLEVEL. El comando VERIFY
con un argumento
erróneo inicializa el valor ERRORLEVEL a un valor distinto de
cero.
Información importante, consejos para el comando "SETLOCAL"
Sí, hay algunos aspectos importantes a considerar cuando
`SETLOCAL`comando en el símbolo del sistema de Windows o en secuencias de comandos por lotes:
1.
Alcance limitado: `SETLOCAL`crea un alcance limitado para las variables de entorno. Los cambios en las variables de entorno dentro de este ámbito no afectan al entorno global ni a otros ámbitos localizados. Tenga en cuenta que
`SETLOCAL`y
`ENDLOCAL`deben usarse en parejas.
SETLOCAL
REM ... Aquí los cambios en las variables de entorno son locales.
ENDLOCAL
2.
Anidamiento: Puedes
`SETLOCAL`anidar para crear múltiples áreas localizadas. Todos
`SETLOCAL`pero debería ser con uno apropiado
`ENDLOCAL`ser terminado.
SETLOCAL
REM Área interior localizada
SETLOCAL
REM Área localizada aún más profunda
ENDLOCAL
ENDLOCAL
3.
Expansión retrasada: Puedes hacerlo con
`SETLOCAL ENABLEDELAYEDEXPANSION`activar la expansión retardada. La variable está incluida.
`!`en lugar de
`%`adjunto. La expansión diferida permite evaluar las variables en tiempo de ejecución, no solo al leer el archivo por lotes.
SETLOCAL ENABLEDELAYEDEXPANSION
SET VARIABLE=Contenido
ECHO Antes retrasado Expansion: %VARIABLE%
SET VARIABLE=Nuevo contenido
ECHO Después del retraso Expansion: !VARIABLE!
ENDLOCAL
4.
Variables de entorno global: Cambios en las variables de entorno que se encuentran dentro de un
`SETLOCAL`-scope no afecta las variables de entorno global fuera del alcance.
SET GLOBAL=Contenido_global
SETLOCAL
SET GLOBAL=Contenido local
ECHO Dentro del área localmente limitada: %GLOBAL%
ENDLOCAL
ECHO Fuera del área local: %GLOBAL%
5.
Deshacer cambios: Si desea deshacer cambios en un área localizada, simplemente vuelva al estado anterior.
`SETLOCAL`de vuelta por ti
`ENDLOCAL`usar.
SETLOCAL
REM Cambios aquí
ENDLOCAL
REM Deshacer los cambios
Es importante,
`SETLOCAL`y
`ENDLOCAL`debe usarse con cuidado y en pares para garantizar que las variables de entorno estén correctamente limitadas y tengan los efectos esperados.