0

我希望有一个功能可以将一些文件添加到某个文件夹中,因为我需要添加更多文件。

这是我的函数代码:

Function "addElement"
    DetailPrint $0
    CreateDirectory $INSTDIR\data\Element\$0
    SetOutPath $INSTDIR\data\Element\$0

    File /r "${binFolder}\data\Element\$0\*.*"
FunctionEnd

在这里我称之为:

strcpy $0 "Element_1"
call "addElement"

strcpy $0 "Element_2"
call "addElement"

strcpy $0 "Element_3"
call "addElement"

nsis 给出了这个错误:

在该行File /r...给出- >没有找到文件。

4

1 回答 1

1

$0是一个变量,变量在运行时使用,File指令需要在编译时知道文件名!

用宏替换函数:

!macro addElement fname
    DetailPrint "${fname}"
    CreateDirectory "$INSTDIR\data\Element\${fname}"
    SetOutPath "$INSTDIR\data\Element\${fname}"

    File /r "${binFolder}\data\Element\${fname}\*.*"
!macroend

...

Section

!insertmacro addElement foo
!insertmacro addElement bar
!insertmacro addElement baz
于 2013-03-18T16:05:44.353 回答