如何在NSIS安装脚本中生成常量数组?
我有大量NSIS安装脚本(.nsi文件),它们只是定义了一组常量,然后主安装程序逻辑驻留了一个包含文件(.nsh),这是每个安装程序所共有的。其中一个包含文件如下所示:如何在NSIS安装脚本中生成常量数组?,nsis,Nsis,我有大量NSIS安装脚本(.nsi文件),它们只是定义了一组常量,然后主安装程序逻辑驻留了一个包含文件(.nsh),这是每个安装程序所共有的。其中一个包含文件如下所示: !ifdef ABC_SUBFOLDER RMDir /r "$ABCPath\Data\${ABC_SUBFOLDER}" SetOutPath "$ABCPath\Data\${ABC_SUBFOLDER}" File /r "${LOCAL_FOLDER}\ABC\${ABC_SUBFOLDER}\
!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
。。。以此类推,最多15个子文件夹可能在顶级.nsi文件中定义,也可能未定义。我的问题是,NSIS中是否有更好的语法来实现这一点,而无需每次需要增加子文件夹的数量时都进行剪切和粘贴?您可以使用${VAR}访问不同的变量,具体取决于另一个变量的值。e、 g
RMDir /r "$ABCPath\Data\${ABC_SUBFOLDER${FOLDERNUMBER}}"
好主意。这将需要工作的基础上!ifdef语句,但如果我可以将它放在一个带有递增S{FOLDERNUMBER}的循环中,那么这可能会满足我的需要。如果可行的话,我会尝试并标记为答案