1

一連の定数を定義するだけの多数の NSIS インストール スクリプト (.nsi ファイル) があり、メインのインストーラー ロジックは、各インストーラーに共通のインクルード ファイル (.nsh) にあります。インクルード ファイルの 1 つは次のようになります。

!ifdef ABC_SUBFOLDER
    RMDir /r "$ABCPath\Data\${ABC_SUBFOLDER}"
    SetOutPath "$ABCPath\Data\${ABC_SUBFOLDER}"
    File /r "${LOCAL_FOLDER}\ABC\${ABC_SUBFOLDER}\*.*"
!endif

!ifdef ABC_SUBFOLDER2
    RMDir /r "$ABCPath\Data\${ABC_SUBFOLDER2}"
    SetOutPath "$ABCPath\Data\${ABC_SUBFOLDER2}"
    File /r "${LOCAL_FOLDER2}\ABC\${ABC_SUBFOLDER2}\*.*"
!endif

!ifdef ABC_SUBFOLDER3
    RMDir /r "$ABCPath\Data\${ABC_SUBFOLDER3}"
    SetOutPath "$ABCPath\Data\${ABC_SUBFOLDER3}"
    File /r "${LOCAL_FOLDER3}\ABC\${ABC_SUBFOLDER3}\*.*"
!endif

...など、最上位の .nsi ファイルで定義されている場合と定義されていない場合がある最大 15 個のサブフォルダー。私の質問は、サポートするサブフォルダーの数を増やす必要があるたびにカットアンドペーストせずにこれを達成するためのより良い構文が NSIS にあるのでしょうか?

4

1 に答える 1

3

${${VAR}} を使用して、別の変数の値に応じて異なる変数にアクセスできます。例えば

RMDir /r "$ABCPath\Data\${ABC_SUBFOLDER${FOLDERNUMBER}}"
于 2008-10-03T10:40:38.433 に答える