写当前日期&使用NSIS作为文件名的时间

时间:2010-03-09 08:16:30

标签: nsis

我使用NSIS开发了一个安装程序。每次我重新安装应用程序时,我都想创建现有数据库文件的备份。

如何使用以下格式'currentdatetime'重命名这些数据库文件(例如:201003101140表示2010-03-10上午11:40)?

谢谢!

3 个答案:

答案 0 :(得分:6)

System::Call '*(&i2,&i2,&i2,&i2,&i2,&i2,&i2,&i2)i.s'
System::Call /NOUNLOAD 'kernel32::GetLocalTime(isr0)'
System::Call '*$0(&i2.r1,&i2.r2,&i2,&i2.r3,&i2.r4,&i2.r5,&i2,&i2)'
System::Free $0
IntFmt $1 "%0.4d" $1
IntFmt $2 "%0.2d" $2
IntFmt $3 "%0.2d" $3
IntFmt $4 "%0.2d" $4
IntFmt $5 "%0.2d" $5
DetailPrint "datetime=$1$2$3$4$5"

答案 1 :(得分:2)

这里解释了执行此操作的最佳方法:nsis !define /date MyTIMESTAMP "%Y-%m-%d-%H-%M-%S" Name "MyApplicationName ${MyTIMESTAMP}" OutFile "MyApplicationNameSetup-${MyTIMESTAMP}.exe"

答案 2 :(得分:-1)