Начало локализации изменений среды в пакетном файле. Изменения среды, внесенные после выполнения команды SETLOCAL, являются локальными относительно текущего пакетного файла. Для восстановления их прежних значений необходимо выполнить команду ENDLOCAL. При достижении конца пакетного файла автоматически выполняется команда ENDLOCAL для всех действующих команд SETLOCAL, выполненных в этом пакетном файле. SETLOCAL Изменение команды SETLOCAL при включении расширенной обработки команд: Команда SETLOCAL принимает необязательные аргументы: ENABLEEXTENSIONS или DISABLEEXTENSIONS. Это позволяет включить или отключить расширенную обработку команд до выполнения команды. См. CMD /? для подробного объяснения. ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION включает или отключает отложенное расширение переменной среды. См. SET /? для подробного объяснения. Эти изменения действуют до совпадения команды ENDLOCAL, независимо от исходного состояния до вызова команды SETLOCAL. Если команда SETLOCAL вызывается с аргументом, она устанавливает код ошибки ERRORLEVEL. Если указан один из двух допустимых аргументов, код ошибки будет равен нулю, иначе возвращается значение 1. Это свойство можно использовать в пакетных файлах, чтобы определить доступность расширенной обработки команд, например: VERIFY OTHER 2>nul SETLOCAL ENABLEEXTENSIONS IF ERRORLEVEL 1 echo Не удается включить расширенную обработку Эта группа команд работает, так как в прежних версиях CMD.EXE команда SETLOCAL не устанавливает значение ERRORLEVEL. Команда VERIFY с недопустимым аргументом необходима для установки ненулевого значения ERRORLEVEL.