다음을 통해 공유


setlocal

배치 파일에서 환경 변수의 지역화를 시작합니다. 현지화는 일치하는 endlocal 명령이 발견되거나 배치 파일의 끝에 도달할 때까지 계속됩니다.

Syntax

setlocal [enableextensions | disableextensions] [enabledelayedexpansion | disabledelayedexpansion]

Parameters

Parameter Description
enableextensions setlocal 명령이 실행되기 전의 설정에 관계없이 일치하는 endlocal 명령이 발견될 때까지 명령 확장을 사용하도록 설정합니다.
disableextensions setlocal 명령이 실행되기 전의 설정에 관계없이 일치하는 endlocal 명령이 발견될 때까지 명령 확장을 사용 안함으로 설정합니다.
enabledelayedexpansion setlocal 명령이 실행되기 전의 설정에 관계없이 일치하는 endlocal 명령이 발견될 때까지 지연된 환경 변수 확장을 사용하도록 설정합니다.
disabledelayedexpansion setlocal 명령이 실행되기 전의 설정에 관계없이 일치하는 endlocal 명령이 발견될 때까지 지연된 환경 변수 확장을 사용 안함으로 설정합니다.
/? 명령 프롬프트에 도움말을 표시합니다.

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 변수를 0이 아닌 값으로 초기화합니다. 또한 인수 {enableextensions | disableextensions} 또는 {enabledelayedexpansion | disabledelayedexpansion}과 함께 setlocal 명령을 사용하고 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