2008-10-03 3 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}가 증가하는 루프에 넣을 수 있습니다. 작동하면 답변을 표시합니다. –

관련 문제