Table of Contents
Batch script – 중첩된 for 루프에서 변수 사용
중첩된 for 루프에서 외부 변수를 사용하면 오류가 발생한다.
오류
@echo off
set "ddd1=C:\Windows\System32\drivers\etc"
set "ddd2=C:\Windows\System32\drivers\etc"
set "ddd3=C:\Windows\System32\drivers\etc"
@REM for /r "C:\Windows\System32\drivers\etc" %%f in (*) do echo %%~tf "%%f"
for %%G in (%ddd1% %ddd2% %ddd3%) do (
@REM 에러
for /r %%G %%f in (*) do echo %%~tf "%%f"
)
대안
서브루틴으로 빼면 오류가 발생하지 않는다.
@echo off
set "ddd1=C:\Windows\System32\drivers\etc"
set "ddd2=C:\Windows\System32\drivers\etc"
set "ddd3=C:\Windows\System32\drivers\etc"
for %%G in (%ddd1% %ddd2% %ddd3%) do (
CALL :sub %%G
)
goto :eof
:sub
for /r %1 %%f in (*) do echo %%~tf "%%f"
@REM EXIT /B
goto :eof
:eof