SETLOCAL
Si las extensiones de comando están habilitadas, SETLOCAL cambia así:
Ahora el comando por lotes SETLOCAL acepta argumentos opcionales:
ENABLEEXTENSIONS / DISABLEEXTENSIONS
Habilita o deshabilita las extensiones del procesador de comandos
Estos argumentos tienen prioridad sobre los modificadores CMD E:O
o /E:OFF. Vea CMD /? para obtener más detalles.
ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION
Habilita o deshabilita la expansión de variables de entorno
retardada. Estos argumentos tienen prioridad sobre los
modificadores CMD /V:ON o /V:OFF. Vea CMD /? para obtener 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 de 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 scripts por lotes para determinar si las extensiones
están disponibles con la siguiente técnica:
VERIFY OTHER 2>null
SETLOCAL ENABLEEXTENSIONS
IF ERRORLEVEL 1 echo No puede habilitar 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 de ERROLEVEL a un valor distinto de cero.
Supongo que por algo relacionado con la memoria.
Se soluciona con un simple y efectivo:
tengo el mismo error mi codigo es el siguiente
setlocal DisableDelayedExpansion
set BUILDIR=PROYECTO\models\EEMFile
set INTEXTFILE=script-player-delete%num%.txt
set OUTTEXTFILE=temp.txt
set SEARCHTEXT=%cd1%\
set VER=-delete "
set OUTPUTLINE=
for /f "tokens=1,* delims=¶" %%A in ( %BUILDIR%\%INTEXTFILE% ) do (
SET string=%%A
setLocal EnableDelayedExpansion
SET modified=!string:%SEARCHTEXT%=%VER%!
echo.!modified! >> %BUILDIR%\%OUTTEXTFILE%
endlocal
)
del %BUILDIR%\%INTEXTFILE%
rename %BUILDIR%\%OUTTEXTFILE% %INTEXTFILE%
me da el mismo error despues de usarlos en mas de apriximadamente 13 veces seguidas ayuda