2008-10-03 74 views
1

我有大量的NSIS安裝腳本(.nsi文件),它們只是定義一堆常量,然後主安裝程序邏輯駐留在每個安裝程序中都包含的包含文件(.nsh)中。其中包括文件看起來是這樣的:如何在NSIS安裝腳本中創建一個常量數組?

!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中有沒有更好的語法來實現這個功能,而且每次我需要增加子文件夾的數量時都不需要剪切和粘貼?

回答

3

根據另一個變量的值,您可以使用$ {$ {VAR}}來訪問不同的變量。例如

RMDir /r "$ABCPath\Data\${ABC_SUBFOLDER${FOLDERNUMBER}}" 
+0

有趣的想法。它也需要使用!ifdef語句,但是如果我可以把它放在一個循環中,使用遞增的S {FOLDERNUMBER},那麼它可以做我需要的。如果它能起作用,將會給它一個答案並標記爲答案 – 2008-10-03 11:42:57

相關問題