NSIS在运行时设置临时文件夹名称
我目前正在Windows temp目录下的文件夹中提取安装程序所需的一些文件。我现在设置它的方式是,该文件夹有一个基于产品名称和日期的唯一名称 问题是,整个文件夹名称变量是在安装程序构建时设置的,而不是在安装程序运行时设置的,这意味着每次运行同一安装程序时,我都没有新的临时文件夹 我用来创建文件夹的代码是:NSIS在运行时设置临时文件夹名称,nsis,Nsis,我目前正在Windows temp目录下的文件夹中提取安装程序所需的一些文件。我现在设置它的方式是,该文件夹有一个基于产品名称和日期的唯一名称 问题是,整个文件夹名称变量是在安装程序构建时设置的,而不是在安装程序运行时设置的,这意味着每次运行同一安装程序时,我都没有新的临时文件夹 我用来创建文件夹的代码是: ; Support folder ; this folder will contain temporary files visibible only for the lifetime of
; 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
这会导致已设置my SUPPORTDIR,从生成日志中可以看出:
!定义:“SUPPORTDIR”=“$TEMP\Test-Proj_130911164903”
如何更改此设置,以便在安装程序每次运行时而不是在生成时设置日期(和文件夹名称)?您可以创建一个循环,从0后缀开始,只要存在具有该名称的文件夹,就增加它,但在您的情况下,您不必,只需在
.onInit
中调用InitPluginsDir
,并使用$pluginsdir
作为临时文件夹