Windows 배치 파일에서 변수를 언로드하는 이유


13

Windows 배치 파일에 사용 된 변수 를 언로드 하는 것이 필요하거나 좋은 방법으로 간주 됩니까?
예를 들어 다음 코드 set myFolder=에서 끝에는 필요합니까?

@echo off
set myFolder="C:\Temp\Batchfiles"
echo %myFolder%

set myFolder=

온라인으로 여러 곳에서 이것을 보았습니다. 배치 파일이 끝나면 변수가 자동으로 언로드됩니까?

답변:


33

SET전역 환경 변수를 설정합니다. 스크립트 실행 후에도 지속됩니다.

예를 봅시다.
먼저 변수가 존재하지 않도록 변수를 지 웁니다.

C:\Users\Oliver\Desktop>set TEST=

빠른 테스트 :

C:\Users\Oliver\Desktop>echo %TEST%
%TEST%

해당 배치 파일을 만들어서 실행 해 봅시다.

C:\Users\Oliver\Desktop>echo set TEST=something>test.bat
C:\Users\Oliver\Desktop>test.bat
C:\Users\Oliver\Desktop>set TEST=something

.bat파일 실행 후 TEST의 값을 보자 .

C:\Users\Oliver\Desktop>echo %TEST%
something

따라서 스크립트 끝에서 변수를 지우는 것이 좋습니다.


전체 문제 를 사용 SETLOCAL하고 ENDLOCAL피하는 것이 더 좋습니다 .

여기에 and .bat를 사용 하는 새 파일을 만들었습니다 .SETLOCALENDLOCAL

C:\Users\Oliver\Desktop>type test.bat
setlocal
set TEST=something
endlocal

TEST깨끗하게 시작하기 위해 그것을 지우고 반향 합시다 :

C:\Users\Oliver\Desktop>set TEST=
C:\Users\Oliver\Desktop>echo %TEST%
%TEST%

좋아, 이제 새로운 것을 실행 해 보자 .bat.

C:\Users\Oliver\Desktop>test.bat
C:\Users\Oliver\Desktop>setlocal
C:\Users\Oliver\Desktop>set TEST=something    
C:\Users\Oliver\Desktop>endlocal

이제는 TEST여전히 비어 있습니다.

C:\Users\Oliver\Desktop>echo %TEST%
%TEST%

2
+! 설명을 위해
Raystafarian

1
훌륭한 예와 설명-감사
ChrisB
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.