0

遅延拡張の内部で遅延拡張を行う必要があります。つまり、次のようになります。

!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

説明された動作をどのように達成できますか?

4

2 に答える 2