setlocal

Rozpoczyna lokalizację zmiennych środowiskowych w pliku wsadowym. Lokalizacja jest kontynuowana do momentu napotkania pasującego polecenia endlocal lub osiągnięcia końca pliku wsadowego.

Syntax

setlocal [enableextensions | disableextensions] [enabledelayedexpansion | disabledelayedexpansion]

Parameters

Parameter Description
enableextensions Włącza rozszerzenia poleceń do momentu napotkania pasującego polecenia endlocal , niezależnie od ustawienia przed uruchomieniem polecenia setlocal .
disableextensions Wyłącza rozszerzenia poleceń do momentu napotkania pasującego polecenia endlocal , niezależnie od ustawienia przed uruchomieniem polecenia setlocal .
enabledelayedexpansion Włącza opóźnione rozszerzanie zmiennych środowiskowych do momentu napotkania pasującego polecenia endlocal , niezależnie od ustawienia przed uruchomieniem polecenia setlocal .
disabledelayedexpansion Wyłącza opóźnioną interpretację zmiennej środowiskowej do momentu napotkania pasującego polecenia endlocal , niezależnie od ustawienia przed uruchomieniem polecenia setlocal .
/? Wyświetla pomoc w wierszu polecenia.

Remarks

  • Jeśli użyjesz polecenia setlocal poza skryptem lub plikiem wsadowym, nie przyniesie to żadnego efektu.

  • Użyj polecenia setlocal , aby zmienić zmienne środowiskowe podczas uruchamiania pliku wsadowego. Zmiany środowiska wprowadzone po uruchomieniu polecenia setlocal są lokalne dla pliku wsadowego. Program Cmd.exe przywraca poprzednie ustawienia, gdy napotka polecenie endlocal lub dotrze do końca pliku wsadowego.

  • W programie wsadowym może znajdować się więcej niż jedno polecenie setlocal lub endlocal (czyli polecenia zagnieżdżone).

  • Polecenie setlocal ustawia zmienną ERRORLEVEL. Jeśli przekażesz {enableextensions | disableextensions} lub {enabledelayedexpansion | disabledelayedexpansion}, zmienna ERRORLEVEL jest ustawiana na 0 (zero). W przeciwnym razie jest ustawiona na 1. Te informacje można użyć w skryptach wsadowych, aby określić, czy rozszerzenia są dostępne, jak pokazano w poniższym przykładzie:

    verify other 2>nul
    setlocal enableextensions
    if errorlevel 1 echo Unable to enable extensions
    

    Ponieważ polecenie cmd nie ustawia zmiennej ERRORLEVEL, gdy rozszerzenia poleceń są wyłączone, polecenie verify inicjuje zmienną ERRORLEVEL na wartość różną od zera, gdy jest używana z nieprawidłowym argumentem. Ponadto, jeśli użyjesz polecenia setlocal z argumentami {enableextensions | disableextensions} lub {enabledelayedexpansion | disabledelayedexpansion} i nie ustawi ono zmiennej ERRORLEVEL na 1, rozszerzenia poleceń nie będą dostępne.

Examples

Aby zlokalizować zmienne środowiskowe w pliku wsadowym, wykonaj następujący przykładowy skrypt:

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