2
!DRIVE! Delayed Expansionが有効になっていることを考慮して作業する必要があります。それはなぜですか?なぜ、以下のコードは最初のケースでは機能しませんか?Windowsのバッチファイルで再帰的(/ R)ループが奇妙な動作をする理由
@echo off
setlocal EnableDelayedExpansion
SET "DRIVE=H:\"
REM DOESN'T WORK
FOR /R "!DRIVE!" %%S in (*) do (
echo(%%S
)
pause
REM WORKS
FOR /R "%DRIVE%" %%S in (*) do (
echo(%%S
)
pause
REM WORKS
FOR /R "H:\" %%S in (*) do (
echo(%%S
)
pause