我目前正在Windows临时目录中的文件夹中提取安装程序所需的一些文件。我现在设置的方式是该文件夹具有基于产品名称和日期的唯一名称。
问题是整个文件夹名称变量是在安装程序构建时设置的,而不是在安装程序运行时设置的,这意味着每次运行相同的安装程序时我都没有新的临时文件夹。
我用来创建文件夹的代码是:
; Support folder
; this folder will contain temporary files visibible only for the lifetime of the installation
!define /date SUPPORTDIR "$TEMP\${PRODUCT_NAME}_%y%m%d%H%M%S"
var InitSupportDirDone
function InitSupportDir
${if} $InitSupportDirDone != 1
SetOutPath "${SUPPORTDIR}"
!include supportfiles.nsh
StrCpy $InitSupportDirDone 1
${endif}
functionend
这会导致我的SUPPORTDIR已经设置,从构建日志中可以看出:
!define: "SUPPORTDIR"="$TEMP\Test-Proj_130911164903"
如何更改此设置,以便每次安装程序运行时而不是在生成时设置日期(和文件夹名称)?
答案 0 :(得分:1)
您可以创建一个循环,以0后缀开头并增加它,只要具有该名称的文件夹存在但在您不需要的情况下,只需在InitPluginsDir
中调用.onInit
即可并使用$pluginsdir
作为临时文件夹......