nsis 将空文件夹添加到安装程序

nsis adds empty folders to the installer

下面的File

; Install common files
SetOutPath "${GameDir}\Mopy"
File /r /x "*.bat" /x "*.py*" /x "w9xpopen.exe" /x "Wrye Bash.exe" "Mopy\*.*"

过滤掉一些包含 python 文件的目录,但当我 运行 安装程序时,这些目录仍然被创建(尽管是空的,或包含空的子目录)。这些文件夹需要包含在安装程序中(如果我在 "compile time" 中得到正确的术语),因为安装程序可以选择安装程序的 python 版本。我想不出不添加这些空文件夹的方法。是否有一些通配符可以用于该目的,或者我应该去删除安装时的文件(使用 RMDir ?)?

我想说你有两个选择,一个确实是 RMDir 如果你同意它可能会删除用户创建的空文件夹。

另一种选择是不使用 File /r ... 而是使用 !system 来执行类似批处理文件的操作,该文件生成一个文本文件,其中包含单独的 File 指令,您可以 !include。它看起来像这样:

!tempfile files
!system '"mygeneratefilelist.bat" "${files}"'
!include "${files}"
!delfile "${files}"

批处理文件将使用 FOR and/or DIR 列出 ECHO File 命令 %1...