我希望能够将一些文件添加到某个文件夹中,因为我需要添加更多文件。
这是我的函数代码:
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...
上的给出 - >找不到文件。
答案 0 :(得分: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