如何将文件从安装程序复制到NSIS中的硬盘驱动器,但前提是它们尚不存在或者比现有文件更新?

cfi*_*her 6 file-io nsis

目前我正在使用:

SetOutPath "$INSTDIR\folder\subfolder"
File /r ..\Output\*.*
Run Code Online (Sandbox Code Playgroud)

问题是重新安装所有文件时将被覆盖.

问题:

  1. 仅当目标目录中尚不存在文件时,如何从安装程序复制文件?

  2. 如何覆盖目标目录中比安装程序中的文件更旧的文件?

编辑:

我找到了这个宏:http://nsis.sourceforge.net/MoveFileFolder

Rya*_*anE 6

我认为最好的解决方案是使用SetOverwrite标志:

http://nsis.sourceforge.net/Docs/Chapter4.html#4.8.2.8

此标志可以在一个部分内动态更改.

所以要具体回答这个问题:

SetOverwrite off       # Only copy if file does not exist
File /r ..\Output\*.*


SetOverwrite ifnewer   # Only overwrite if installers' file is newer
File /r ..\Output\*.*
Run Code Online (Sandbox Code Playgroud)