Setlocal

Начало области задания для определения переменных среды в пакетном файле. Локальное окружение используется до тех пор, пока не встретится команда endlocal или не будет достигнут конец пакетного файла.

Синтаксис

setlocal {enableextension | disableextensions
 { enabledelayedexpansion | disabledelayedexpansion

Аргументы

enableextension
Включает расширения командного процессора до появления соответствующей команды endlocal, вне зависимости от состояния расширений командного процессора перед командой setlocal.
disableextensions
Выключает расширения командного процессора до появления соответствующей команды endlocal, вне зависимости от состояния расширений командного процессора перед командой setlocal.
enabledelayedexpansion
Включает расширения переменной среды с задержкой до появления соответствующей команды endlocal, вне зависимости от состояния расширений командного процессора перед командой setlocal.
disabledelayedexpansion
Выключает расширения переменных среды с задержкой до появления соответствующей команды endlocal, вне зависимости от состояния расширений командного процессора перед командой setlocal.
/?
Отображает справку в командной строке.

Примечания

  • Использование команды setlocal

    Команда setlocal не выполняется при использовании вне сценария или пакетного файла.

  • Изменение переменных среды

    Используйте команду setlocal для изменения переменных среды при выполнении пакетного файла. Изменения среды, выполненные после setlocal, являются локальными для пакетного файла. Cmd.exe восстанавливает первоначальные параметры при обнаружении команды endlocal или достижении конца пакетного файла.

  • Допускается использование нескольких команд setlocal и endlocal в пакетной программе (так называемых, вложенных команд).
  • Проверка расширений командного процессора в пакетных файлах

    Команда setlocal устанавливает переменную ERRORLEVEL. При выполнении аргументов {enableextension | disableextensions} или {enabledelayedexpansion | disabledelayedexpansion} переменная ERRORLEVEL имеет значение ноль (0). В противном случае ее значение 1. Этим можно воспользоваться в пакетных программах для проверки доступности расширений командного процессора, например:

     verify other 2>nul
        setlocal enableextensions
        if errorlevel 1 echo Включение расширений
        командного процессора невозможно
    
    

    Так как команда cmd не устанавливает значение переменной ERRORLEVEL, когда расширения командного процессора отключены, команда verify устанавливает переменную ERRORLEVEL в ненулевое значение при использовании этой команды с недопустимым аргументом. Если используется команда setlocal с аргументами {enableextension | disableextensions} или {enabledelayedexpansion | disabledelayedexpansion} и значение переменной ERRORLEVEL не 1, расширения командного процессора недоступны.

    Дополнительные сведения о расширениях командного процессора смотрите в разделе cmd.

Примеры

Локальное изменение переменных среды в пакетном файле может быть использовано следующим образом:

 rem *******Начало комментария**************
  rem Эта программа запускает приложение superapp в сети,
  rem записывает вывод в файл и загружает этот файл в программу
  rem Блокнот.
  rem *******Конец комментария **************
      @echo off
      setlocal
      path=g:\programs\superapp;%path%
      call superapp>c:\superapp.out
      endlocal
      start notepad c:\superapp.out


Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуется регистрация).



Новый раздел о средствах командной строки в рамках этого же проекта расположен здесь





HTML и CSS
корректный
my counter

Фитотерапия Молитвы Водолечение Юмор Форум Кладовка link О авторе Фитотерапия Молитвы Водолечение Юмор Форум Кладовка Ссылки О авторе Отправить сообщение Карта сайта Поиск по сайту Главная страница