Batch script – 중첩된 for 루프에서 변수 사용

By | 2024년 11월 8일
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

답글 남기기