如何在不递归输入目录的情况下使用File / r

时间:2014-08-29 13:13:10

标签: nsis

我有一个如下所示的目录结构:

parent-dir
  XXX
    file.txt
    YYY
      file2.txt
  CCC
    XXX
      file3.txt

我目前使用File /r XXX递归获取parent-dir \ XXX但是因为/ r也导致File以递归方式搜索输入目录,我也得到所有parent-dir \ CCC \ XXX。

我意识到我可以CreateDirectory XXXSetOutputPath XXX然后使用File /r XXX\*然后再使用SetOutputPath但我不希望每次使用{{{{}时都必须这样做1}}

是否有一种安全的方法可以使用File /r来抓取未来可能被添加到parent-dir的意外内容?

1 个答案:

答案 0 :(得分:1)

对于可能出现意外文件的File /r问题,我制作了以下宏:

; SlurpSubDir : include a file pattern from a directory
!macro SlurpSubDir args parentSrcDir subDir pattern parentDstDir
    SetOutPath "${parentDstDir}\${subDir}"
    File ${args} "${parentSrcDir}\${subDir}\${pattern}"
    SetOutPath "${parentDstDir}"
!macroend
!define SlurpSubDir "!insertmacro SlurpSubDir"

我这样称为从perl获取整个${InstSrcFiles}子目录,这是安装主文件所在的目录,排除了可能的.svn目录和文件将被安装到$INSTDIR

${SlurpSubDir} "/r /x .svn" "${InstSrcFiles}" "perl" "*.*" "$INSTDIR"
相关问题