Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Запускает локализацию переменных среды в пакетном файле. Локализация продолжается до тех пор, пока не будет обнаружена соответствующая команда концевого или не будет достигнут конец пакетного файла.
Синтаксис
setlocal [enableextensions | disableextensions] [enabledelayedexpansion | disabledelayedexpansion]
Параметры
Параметр | Описание |
---|---|
enableextensions | Включает расширения команд до тех пор, пока не будет обнаружена соответствующая команда endlocal независимо от параметра перед выполнением команды setlocal. |
disableextensions | Отключает расширения команд до тех пор, пока не будет обнаружена соответствующая команда endlocal независимо от параметра перед выполнением команды setlocal. |
enabledelayedexpansion | Включает расширение отложенной переменной среды до тех пор, пока не будет обнаружена соответствующая команда концевого независимо от параметра до выполнения команды setlocal . |
disabledelayedexpansion | Отключает отложенное расширение переменной среды до тех пор, пока не будет обнаружена соответствующая команда endlocal независимо от параметра до выполнения команды setlocal . |
/? | Отображает справку в командной строке. |
Замечания
Если вы используете setlocal вне скрипта или пакетного файла, он не действует.
Используйте setlocal для изменения переменных среды при запуске пакетного файла. Изменения среды, внесенные после выполнения setlocal, являются локальными для пакетного файла. Программа Cmd.exe восстанавливает предыдущие параметры при обнаружении команды концевого или достигает конца пакетного файла.
У вас может быть несколько наборных или команде 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 при отключении расширений команд, команда проверить, инициализирует переменную ERRORLEVEL ненулевому значению при использовании с недопустимым аргументом. Кроме того, если вы используете команду setlocal с аргументами {enableextensions | disableextensions} или {enabledelayedexpansion | disabledelayedexpansion} и не задает переменную ERRORLEVEL 1, расширения команд недоступны.
Примеры
Чтобы локализовать переменные среды в пакетном файле, выполните следующий пример сценария:
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