【发布时间】:2012-06-16 08:37:54
【问题描述】:
我似乎找不到任何关于如何使用 NSIS 复制目录的信息?,我知道有一个文件命令,但是有任何命令可以复制一个目录。
【问题讨论】:
标签: windows installation nsis
我似乎找不到任何关于如何使用 NSIS 复制目录的信息?,我知道有一个文件命令,但是有任何命令可以复制一个目录。
【问题讨论】:
标签: windows installation nsis
反斜杠后与整个内容匹配的星号是强制性的。语法如下。
参见the manual 第 4.9.1.6 节
SetOutPath "outputPath\myDirectory"
File /nonfatal /a /r "myDirectory\*"
【讨论】:
目录和文件的语法相同,只是您需要通过在末尾提供\ 来指定目录。如果指定的参数是目录,File 命令复制目录。例如,您可以这样做:
SetOutPath "outputPath"
File "myDirectory\" #note back slash at the end
但这仅复制顶级目录。要递归地做到这一点,你有/r 开关
SetOutPath "outputPath"
File /nonfatal /a /r "myDirectory\" #note back slash at the end
复制myDirectory 的内容(但不复制myDirectory 文件夹本身)。如果没有特定目录,/nonfatal 会忽略而不会出现错误。 /a 也复制文件属性。 /x 开关用于排除文件。
否则,
SetOutPath "outputPath\myDirectory"
File /nonfatal /a /r "myDirectory\" #note back slash at the end
将myDirectory的所有内容包括myDirectory文件夹复制到outputPath。
【讨论】:
File 指令从您的安装程序中提取文件,CopyFiles 复制最终用户系统上已经存在的文件和/或目录(如果您需要从安装程序所在的 DVD 复制文件,您可以使用 $EXEDIR也位于...)
【讨论】:
我找到了方法,抱歉给你添麻烦了。
将文件解压到事先不存在的目录中
CreateDirectory $Installdir\extracting
SetOutPath $Installdir\extracting
File Directory\*
【讨论】:
SetOutPath 已经创建了传入的目录和子目录,所以不需要先调用 CreateDirectory。