OS/Windows
batch script - FOR문 내부에서 SET 처리 하는 방법
이쿠우우
2022. 4. 7. 20:49
반응형
FOR문 내부에서 SET 처리 하는 방법
ERROR 상황
[test.log 파일의 내용]
<virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" />
<virtualDirectory path="/" physicalPath="C:\test" />
|
[test에 사용한 batch script]
set var="test"
for /f "tokens=*" %%a in ('type test.log') DO(
set var=%%a
echo %var%
)
|
위와 같은 script를 실행하면
var 변수 %%a 값이 저장되어
echo 시 %%a 값이 출력되길 원함
하지만 결과는
초기에 설정한 test 값이 출력됨.
해결책
SETLOCAL ENABLEDELAYEDEXPANSION 를 사용하면 됨
[test에 사용한 batch script]
SETLOCAL ENABLEDELAYEDEXPANSION
set var="test"
for /f "tokens=*" %%a in ('type test.log') DO(
set var=%%a
echo !var!
)
|

for문 내부에서 설정한 변수는 "!변수명!" 형식으로 사용해야함.
[결과]
정상적으로 이동됨.
반응형