명령: "SETLOCAL" 켜짐 Windows 12, 11, 10, .. , MS Server 2025, 2022, 2019, .. 사용 가능
명령의 예 "SETLOCAL"
그만큼
`SETLOCAL`Windows 명령 프롬프트의 명령은 배치 파일에서 로컬로 환경 변수를 설정하는 데 사용됩니다. 다음은 사용 방법에 대한 몇 가지 예입니다.
`SETLOCAL`:
예 1: 로컬 환경 변수 설정:
@ECHO OFF
SETLOCAL
SET 현지의_VARIABLE=내용물
ECHO %현지의_VARIABLE%
설명: 이 예에서는 환경 변수
`현지의_VARIABLE`지역적으로 제한된 지역 내에서 (를 통해
`SETLOCAL`그리고
`ENDLOCAL`) 이 범위 내에서만 사용할 수 있습니다.
예 2: 이전 상태로 재설정:
@ECHO OFF
SET GLOBALE_VARIABLE=글로벌_컨텐츠
SETLOCAL
SET 현지의_VARIABLE=로컬 콘텐츠
ECHO 현지의 Variable: %현지의_VARIABLE%
ECHO Globale Variable: %GLOBALE_VARIABLE%
ENDLOCAL
ECHO 현지의 Variable (지역적으로 제한된 지역 밖에서): %현지의_VARIABLE%
설명: 로컬 환경 변수입니다.
`현지의_VARIABLE`지역적으로 제한된 지역 내에서 설정하여 사용합니다. 후에
`ENDLOCAL`스크립트는 이전 상태로 돌아가고 로컬 변수는 더 이상 로컬 범위 외부에서 사용할 수 없습니다.
예 3: SETLOCAL 중첩:
@ECHO OFF
SETLOCAL
SET VARIABLE1=값1
ECHO 내부 공간: %VARIABLE1%
SETLOCAL
SET VARIABLE2=값2
ECHO 외부 지역: %VARIABLE1%, %VARIABLE2%
ENDLOCAL
ECHO 지역 외: %VARIABLE1%, %VARIABLE2%
설명: 이곳은
`SETLOCAL`-명령이 두 번 중첩되었습니다. 변수
`VARIABLE2`내부 지역에서만 볼 수 있지만
`VARIABLE1`외부 및 내부 영역에서 볼 수 있습니다.
예 4: 고급 환경 변수 처리 활성화:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET VARIABLE=내용물
ECHO 지연되기 전 Expansion: %VARIABLE%
SET VARIABLE=New_content
ECHO 지연 후 Expansion: !VARIABLE!
설명: 다음을 사용하여
`ENABLEDELAYEDEXPANSION`느낌표가 있는 환경 변수를 사용할 수 있습니다.
`!`퍼센트 기호 대신
`%`지연 확장에 사용됩니다.
그만큼
`SETLOCAL`환경을 사용하면 배치 파일에 대해 로컬로 변수를 설정할 수 있으므로 변경 사항이 제한된 영역에만 적용되고 전체 스크립트에 전역적으로 적용되지는 않습니다. 이는 환경 변수에 대한 변경 사항을 스크립트의 특정 섹션 내에서 제한하려는 경우 특히 유용합니다.
"SETLOCAL" Microsoft Windows 도움말에서 발췌
Microsoft Windows [Version 10.0.19045.3693]
(c) Copyright 1985-2023 Microsoft Corp.
C:\\WINDOWS>
일괄 컥臼【?환경 변경의 지역화를 시작합니다. SETLOCAL이 시작된 후 일어난 환경 변경은 일괄 파일에만
유효합니다.
이전 설정으로 복구하려면 ENDLOCAL을 사용해야 합니다. 배치 스크립트 끝에
도달하면, 암시적인 ENDLOCAL이 배치 스크립트가
만든 모든 특별한 SETLOCAL 명령어를 실행합니다.
SETLOCAL
명령 확장을 사용하면 SETLOCAL는 아래와 같이 바뀝니다.
SETLOCAL 일괄 명령은 선택적인 인수를 받아들이게 되는데,
인수는 ENABLEEXTENSIONS나 DISABLEEXTENSIONS가 될 수 있습니다.
이렇게 하면 SETLOCAL 명령에 앞서 설정한 것?관계 없이 대응되는
ENDLOCAL 명령이 나타날 때까지 명령 처리 확장을 사용하거나 사용하지 않습니다.
SETLOCAL 명령은 인수가 주어지면 ERRORLEVEL값을 설정합니다.
두개의 올바른 인수 중 하나가 주어지고 다른 하나가 주어지지 않으면 0이
됩니다. 이것으로 아래와 같은 기법을 사용하여 일괄 스크립트에서 확장을
사용 가능한지를 결정할 수 있습니다.
VERIFY OTHER 2>nul
SETLOCAL ENABLEEXTENSIONS
IF ERRORLEVEL 1 echo 확장을 사용할 수 없습니다.
이것은 CMD.EXE, SETLOCAL의 이전 버전에ERRORLEVEL 값이
설정되?않았기 때문에 작동합니다. 잘못된 인수와 함께 VERIFY 명령을
사용하면 ERRORLEVEL 값이 0이 아닌 값으로 초기화됩니다.
중요 정보, "SETLOCAL" 명령에 대한 팁
예, 다음과 같은 경우 고려해야 할 몇 가지 중요한 측면이 있습니다.
`SETLOCAL`Windows 명령 프롬프트 또는 배치 스크립트의 명령:
1.
제한된 범위: `SETLOCAL`환경 변수에 대한 제한된 범위를 만듭니다. 이 범위 내의 환경 변수에 대한 변경 사항은 전역 환경이나 기타 지역화된 범위에 영향을 주지 않습니다. 참고하세요
`SETLOCAL`그리고
`ENDLOCAL`쌍으로 사용해야 합니다.
SETLOCAL
REM ... 여기서 환경 변수에 대한 변경 사항은 로컬입니다.
ENDLOCAL
2.
중첩: 다음을 수행할 수 있습니다.
`SETLOCAL`중첩하여 여러 지역화된 영역을 만듭니다. 모든 사람
`SETLOCAL`하지만 적절한 사람과 함께 있어야합니다
`ENDLOCAL`종료됩니다.
SETLOCAL
REM 내부 지역화 된 영역
SETLOCAL
REM 더 깊은 국지적 영역
ENDLOCAL
ENDLOCAL
3.
지연된 확장: 다음과 같이 할 수 있습니다.
`SETLOCAL ENABLEDELAYEDEXPANSION`지연된 확장을 활성화합니다. 변수가 포함되어 있습니다.
`!`대신에
`%`에워싸는. 지연 확장을 사용하면 배치 파일을 읽을 때뿐만 아니라 런타임에 변수를 평가할 수 있습니다.
SETLOCAL ENABLEDELAYEDEXPANSION
SET VARIABLE=내용물
ECHO 지연되기 전 Expansion: %VARIABLE%
SET VARIABLE=New_content
ECHO 지연 후 Expansion: !VARIABLE!
ENDLOCAL
4.
전역 환경 변수 :`SETLOCAL`-scope는 범위 외부의 전역 환경 변수에 영향을 주지 않습니다.
SET GLOBAL=글로벌_컨텐츠
SETLOCAL
SET GLOBAL=로컬 콘텐츠
ECHO 지역적으로 제한된 지역 내에서: %GLOBAL%
ENDLOCAL
ECHO 지역 외: %GLOBAL%
5.
변경 취소: 특정 영역의 변경 사항을 취소하려면 이전 상태로 되돌리면 됩니다.
`SETLOCAL`너에게로 돌아왔다
`ENDLOCAL`사용.
SETLOCAL
REM 여기에서 변경사항
ENDLOCAL
REM 변경 사항을 취소합니다
그건 중요해,
`SETLOCAL`그리고
`ENDLOCAL`환경 변수가 올바르게 제한되고 예상되는 효과가 있는지 확인하기 위해 신중하게 쌍으로 사용해야 합니다.