Иногда бывает нужно получить в скрипте установки локальную дату и время, или дату и время, связанную с файлом (модификации, создания или последнего доступа к файлу). В NSIS это делает одна стандартная функция, точнее, макрос ${GetTime}.
Для того, чтобы использовать GetTime, необходимо подключить заголовочный файл FileFunc.nsh (должен идти в стандартной поставке) и сам макрос GetTime:
!include "FileFunc.nsh"
!insertmacro GetTime
Вот начало инсталляционного скрипта:
Unicode true
!include "FileFunc.nsh"
!insertmacro GetTime
Name "GetLocalTime"
OutFile "GetLocalTime.exe"
ShowInstDetails show
RequestExecutionLevel User
;Далее будет тестовая секция
${GetTime} "[File]" "[Option]" $var1 $var2 $var3 $var4 $var5 $var6 $var7
где:
— "[File]" — файл (параметр игнорируется при использовании опций "L" или "LS")
— "[Option]" — опции (см. далее)
— $var1 — День
— $var2 — Месяц
— $var3 — Год
— $var4 — День недели (наименование на английском языке)
— $var5 — Час
— $var6 — Минута
— $var7 — Секунда
Опции:
L — локальное время компьютера
A — время последнего доступа к файлу
C — время создания файла
M — время последнего изменения файла
LS — системное время (то же самое, что и L, только используется часовой пояс UTC)
AS — время последнего доступа к файлу (UTC)
CS — время создания файла (UTC)
MS — время последнего изменения файла (UTC)
Section "Test"
; Получаем время компьютера
${GetTime} "" "L" $0 $1 $2 $3 $4 $5 $6
; Выводим его в окошко лога инсталлятора
DetailPrint "Local date and time:"
DetailPrint "$2/$1/$0 ($3) $4:$5:$6"
; Можно преобразовать время в строку
; чтоб добавить к имени файла
DetailPrint "String to add time in filename:"
StrCpy $0 "$2-$1-$0-$4-$5-$6"
; и вывести ее
DetailPrint "$0"
SectionEnd

— Пример на GitHub
— how to get the date and time?
— E.1.6 GetTime
2 Responses to NSIS: Получение даты и времени.