我使用NSIS開發了一個安裝程序。每次我重新安裝應用程序時,我都想創建現有數據庫文件的備份。使用NSIS將當前日期和時間作爲文件名寫入
如何使用以下格式'currentdatetime'重命名這些數據庫文件(例如:201003101140意味着2010-03-10上午11:40)?
謝謝!
我使用NSIS開發了一個安裝程序。每次我重新安裝應用程序時,我都想創建現有數據庫文件的備份。使用NSIS將當前日期和時間作爲文件名寫入
如何使用以下格式'currentdatetime'重命名這些數據庫文件(例如:201003101140意味着2010-03-10上午11:40)?
謝謝!
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"
有NSIS中內置的功能這款名爲$ {GETTIME}
!include "FileFunc.nsh"
!insertmacro GetTime
${GetTime} "" "L" $0 $1 $2 $3 $4 $5 $6
DetailPrint "currentdatetime=$2$1$0$4$5$6"
這將輸出類似
currentdatetime=20130210205537
意思是「10-Feb-2013 20:55:37」。
做到這一點,最好的辦法是在這裏解釋:nsis !define /date MyTIMESTAMP "%Y-%m-%d-%H-%M-%S" Name "MyApplicationName ${MyTIMESTAMP}" OutFile "MyApplicationNameSetup-${MyTIMESTAMP}.exe"
這些都是編譯時的命令,不是運行命令 – fiat 2012-10-08 23:50:27