Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Запускает локализацию переменных среды в пакетном файле. Локализация продолжается до тех пор, пока не будет найдена соответствующая команда endlocal или не будет достигнут конец пакетного файла.
Syntax
setlocal [enableextensions | disableextensions] [enabledelayedexpansion | disabledelayedexpansion]
Parameters
| Parameter | Description |
|---|---|
| enableextensions | Включает расширения команд до тех пор, пока не будет найдена соответствующая команда endlocal , независимо от настроек, заданных до выполнения команды setlocal . |
| disableextensions | Отключает расширения команд до тех пор, пока не будет найдена соответствующая команда endlocal , независимо от параметра, заданного до запуска команды setlocal . |
| enabledelayedexpansion | Включает отложенное расширение переменной среды до тех пор, пока не будет найдена соответствующая команда endlocal , независимо от настроек, заданных до выполнения команды setlocal . |
| disabledelayedexpansion | Отключает отложенное расширение переменной среды до тех пор, пока не будет найдена соответствующая команда endlocal , независимо от настроек, заданных до выполнения команды setlocal . |
| /? | Отображает справку в командной строке. |
Remarks
Если вы используете setlocal вне сценария или командного файла, это не дает никакого эффекта.
Используйте setlocal для изменения переменных среды при запуске пакетного файла. Изменения среды, внесенные после запуска setlocal, являются локальными для командного файла. Программа Cmd.exe восстанавливает прежние настройки, когда встречает команду endlocal или доходит до конца пакетного файла.
В пакетной программе может быть несколько команд setlocal или endlocal (т. е. вложенных команд).
Команда setlocal устанавливает переменную ERRORLEVEL. Если вы передадите {enableextensions | disableextensions} или {enabledelayedexpansion | disabledelayedexpansion}, переменная ERRORLEVEL устанавливается в 0 (ноль). В противном случае устанавливается значение 1. Эти сведения можно использовать в пакетных сценариях, чтобы определить, доступны ли расширения, как показано в следующем примере:
verify other 2>nul setlocal enableextensions if errorlevel 1 echo Unable to enable extensionsПоскольку cmd не устанавливает переменную ERRORLEVEL при отключении командных расширений, команда verify инициализирует переменную ERRORLEVEL ненулевым значением, если вы используете ее с недопустимым аргументом. Кроме того, если вы используете команду setlocal с аргументами {enableextensions | disableextensions} или {enabledelayedexpansion | disabledelayedexpansion} и она не устанавливает переменную ERRORLEVEL равным 1, расширения команд недоступны.
Examples
Чтобы локализовать переменные среды в пакетном файле, выполните следующий пример сценария:
rem *******Begin Comment**************
rem This program starts the superapp batch program on the network,
rem directs the output to a file, and displays the file
rem in Notepad.
rem *******End Comment**************
@echo off
setlocal
path=g:\programs\superapp;%path%
call superapp>c:\superapp.out
endlocal
start notepad c:\superapp.out