writing current date & time as file name using NSIS

后端 未结 4 1590
花落未央
花落未央 2021-01-05 13:04

I developed an installer using NSIS. Every time I re-install the application, I want to create a backup of the existing database files.

How can I rename these datab

相关标签:
4条回答
  • 2021-01-05 13:13

    There is a built-in function in NSIS for this called ${GetTime}

      !include "FileFunc.nsh"
      !insertmacro GetTime
    
      ${GetTime} "" "L" $0 $1 $2 $3 $4 $5 $6
      DetailPrint "currentdatetime=$2$1$0$4$5$6"
    

    This will output something like

      currentdatetime=20130210205537
    

    meaning "10-Feb-2013 20:55:37".

    0 讨论(0)
  • 2021-01-05 13:18
    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"
    
    0 讨论(0)
  • 2021-01-05 13:20

    These macros might work for you: http://nsis.sourceforge.net/Docs/Chapter5.html#5.2.3

    0 讨论(0)
  • 2021-01-05 13:21

    The best way to do this is explained here: nsis !define /date MyTIMESTAMP "%Y-%m-%d-%H-%M-%S" Name "MyApplicationName ${MyTIMESTAMP}" OutFile "MyApplicationNameSetup-${MyTIMESTAMP}.exe"

    0 讨论(0)
提交回复
热议问题