遅延拡張の内部で遅延拡張を行う必要があります。つまり、次のようになります。
!PARAMS[!BEFORE_LAST!]!
もちろん、上記は有効ではないため、for ループを使用して回避しようとしましたが、成功しませんでした。
SETLOCAL EnableExtensions EnableDelayedExpansion
SET PARAM_COUNT=0
FOR %%P IN (%*) DO (
SET /A PARAM_COUNT+=1
SET PARAMS[!PARAM_COUNT!]=%%P
IF !PARAM_COUNT! GTR 1 (
SET /A BEFORE_LAST = !PARAM_COUNT!-1
FOR /L %%G IN (!BEFORE_LAST!) DO SET BEFORE_LAST_PARAM=!PARAMS[%%G]!
IF "!BEFORE_LAST_PARAM!"=="--buildroot" (
REM perfrom some actions here
)
)
)
ENDLOCAL
説明された動作をどのように達成できますか?