Installation NSIS使用CopyFiles而不是file命令进行递归文件复制

Installation NSIS使用CopyFiles而不是file命令进行递归文件复制,installation,nsis,Installation,Nsis,对于NSIS安装程序,我一直在使用以下命令: SetOutPath $INSTDIR\data File /r /x *.svn data\newTerrainTiled 将数据文件复制到可执行文件本身。我现在有一个更大的数据集,它已经超出了安装程序可执行文件的最大大小。我试图将代码更改为: SetOutPath $INSTDIR\data CopyFiles /r $EXEDIR\data\newTerrainTiled 但显然,CopyFiles没有递归标志。我意识到我可以一个接一个地创

对于NSIS安装程序,我一直在使用以下命令:

SetOutPath $INSTDIR\data
File /r /x *.svn data\newTerrainTiled
将数据文件复制到可执行文件本身。我现在有一个更大的数据集,它已经超出了安装程序可执行文件的最大大小。我试图将代码更改为:

SetOutPath $INSTDIR\data
CopyFiles /r $EXEDIR\data\newTerrainTiled
但显然,CopyFiles没有递归标志。我意识到我可以一个接一个地创建newterrantiled文件夹的子目录,然后使用带有通配符*的copyfile。我想知道是否有人已经想出了一种递归方法,在数据集变大时使用CopyFiles代替File进行复制

谢谢

文件指令将您正在编译的系统中的文件打包到安装程序中。 CopyFiles将最终用户系统上的文件和/或文件夹从a复制到b!也就是说,源和目标都在最终用户系统上,并且在复制之前,源文件实际上必须存在 CopyFiles可以复制包含所有文件和子文件夹的目录,但在您的情况下,只有当数据目录与安装程序一起放在CD/DVD上时,它才有用

其他备选方案包括:

将数据文件放入外部存档zip等,并使用NSIS插件之一进行解压缩。 将数据附加到生成的安装程序的末尾,并提取该无限大小的文件 文件指令将您正在编译的系统中的文件打包到安装程序中。 CopyFiles将最终用户系统上的文件和/或文件夹从a复制到b!也就是说,源和目标都在最终用户系统上,并且在复制之前,源文件实际上必须存在 CopyFiles可以复制包含所有文件和子文件夹的目录,但在您的情况下,只有当数据目录与安装程序一起放在CD/DVD上时,它才有用

其他备选方案包括:

将数据文件放入外部存档zip等,并使用NSIS插件之一进行解压缩。 将数据附加到生成的安装程序的末尾,并提取该无限大小的文件
CopyFiles语法是:CopyFiles[flags]CopyFiles语法是:CopyFiles[flags]我理解CopyFiles语法是什么。我了解CopyFiles要求终端用户的系统上已经存在文件。newTerrainTiled有很多子目录,它们经过了足够的编辑,因此在安装脚本中创建zip存档或存储一组CreateDirectory/CopyFiles命令是有问题的。我不知道如何将数据附加到生成的安装程序的末尾,也不知道如何提取数据。我一直在想:有没有人写了一个宏或函数来实现递归复制文件?没关系,我是个白痴。正如你所说,CopyFiles已经可以进行递归复制了,但我在第一次阅读时就忽略了这一点。我理解CopyFiles的语法。我了解CopyFiles要求终端用户的系统上已经存在文件。newTerrainTiled有很多子目录,它们经过了足够的编辑,因此在安装脚本中创建zip存档或存储一组CreateDirectory/CopyFiles命令是有问题的。我不知道如何将数据附加到生成的安装程序的末尾,也不知道如何提取数据。我一直在想:有没有人写了一个宏或函数来实现递归复制文件?没关系,我是个白痴。正如您所说,CopyFiles已经可以进行递归复制了,但在我第一次阅读时却忽略了这一点。