Команда ENDLOCAL – отмена локальных изменений переменных среды для текущего командного файла.

    Команда SETLOCAL используется для временного изменения значений переменных среды в командных файлах Windows. Изменения среды, внесенные после выполнения команды SETLOCAL, являются локальными относительно текущего пакетного файла. Для восстановления их прежних значений необходимо выполнить команду ENDLOCAL.

Если команда ENDLOCAL отсутствует после выполнения команды SETLOCAL, то изменения переменной среды отменяются по завершению командного файла.

Иногда возникает необходимость получить значения переменных среды, сформированные на участке командного файла между SETLOCAL и ENDLOCAL. Для этого используется прием, основанный на осбенностях командного процессора (интерпретатора) Windows. Командный процессор cmd.exe обрабатывает командные файлы построчно, преобразовывая все переменные в их значения перед выполнения команд. Поэтому, если поместить в одну строку команды ENDLOCAL и команды SET, присваивающие внутренние значения переменных новым переменным, то с ними можно будет работать и после выполнения команды ENDLOCAL: @Echo off

SETLOCAL

Set var1="Test1"

Set var2=500

ENDLOCAL & SET result1=%var1% & SET result2=%var2%

Rem

ECHO Значение %result1% равно %result2%

Значения локальных переменных var1 и var2 присваиваются переменным result1 и result2, что позволяет использовать их в других секциях данного командного файла после выполнения командного файла.

При большом количестве команд SET удобнее для восприятия размещать их построчно, объединив с помощью скобок:

Endlocal&(

set var1=%item1%

set var2=%item2%

set var3=%item3%)

В данном случае, можно использовать значения переменных var1 - var3 в пределах всего командного файла не обращая внимания на то, что их значения формируются внутри участка между SETLOCAL и ENDLOCAL.

Команда ENDLOCAL не сбрасывает значение переменной ERRORLEVEL.








Весь список команд CMD Windows