setlocal

Startet die Lokalisierung von Umgebungsvariablen in einer Batchdatei. Die Lokalisierung wird fortgesetzt, bis ein übereinstimmender endlocal-Befehl gefunden wird oder das Ende der Batchdatei erreicht ist.

Syntax

setlocal [enableextensions | disableextensions] [enabledelayedexpansion | disabledelayedexpansion]

Parameter

Parameter BESCHREIBUNG
enableextensions Aktiviert die Befehlserweiterungen, bis der übereinstimmende endlocal-Befehl gefunden wird, unabhängig von der Einstellung vor Ausführung des Befehls setlocal.
disableextensions Deaktiviert die Befehlserweiterungen, bis der übereinstimmende endlocal-Befehl gefunden wird, unabhängig von der Einstellung vor Ausführung des Befehls setlocal.
enabledelayedexpansion Aktiviert die verzögerte Ungebungsvariablenerweiterung, bis der übereinstimmende endlocal-Befehl gefunden wird, unabhängig von der Einstellung vor Ausführung des Befehls setlocal.
disabledelayedexpansion Deaktiviert die verzögerte Ungebungsvariablenerweiterung, bis der übereinstimmende endlocal-Befehl gefunden wird, unabhängig von der Einstellung vor Ausführung des Befehls setlocal.
/? Zeigt die Hilfe an der Eingabeaufforderung an.

Bemerkungen

  • Wenn Sie setlocal außerhalb eines Skripts oder einer Batchdatei verwenden, hat dies keine Auswirkung.

  • Verwenden Sie setlocal, um Umgebungsvariablen zu ändern, wenn Sie eine Batchdatei ausführen. Umgebungsänderungen, die nach dem Ausführen von setlocal vorgenommen werden, sind lokal für die Batchdatei. Das Programm „Cmd.exe“ stellt vorherige Einstellungen wieder her, wenn ein endlocal-Befehl oder das Ende der Batchdatei erreicht wird.

  • Sie können mehrere setlocal- oder endlocal-Befehle in einem Batchprogramm (also geschachtelte Befehle) verwenden.

  • Der Befehl setlocal legt die Variable „ERRORLEVEL“ fest. Wenn Sie {enableextensions | disableextensions} oder {enabledelayedexpansion | disabledelayedexpansion} übergeben, wird die Variable „ERRORLEVEL“ auf 0 (null) festgelegt. Andernfalls wird sie auf 1 festgelegt. Sie können diese Informationen in Batchskripts verwenden, um zu bestimmen, ob die Erweiterungen verfügbar sind, wie im folgenden Beispiel gezeigt:

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

    Da cmd die Variable „ERRORLEVEL“ nicht festgelegt, wenn Befehlserweiterungen deaktiviert sind, initialisiert der Befehl verify die Variable „ERRORLEVEL“ auf einen Nicht-Null-Wert, wenn Sie ihn mit einem ungültigen Argument verwenden. Wenn Sie den Befehl setlocal mit den Argumenten {enableextensions | disableextensions} oder {enabledelayedexpansion | disabledelayedexpansion} verwenden und die Variable „ERRORLEVEL“ nicht auf 1 festlegen, sind Befehlserweiterungen nicht verfügbar.

Beispiele

Befolgen Sie das folgende Beispielskript, um Umgebungsvariablen in einer Batchdatei zu lokalisieren:

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