Иногда бывает нужно получить в скрипте установки локальную дату и время, или дату и время, связанную с файлом (модификации, создания или последнего доступа к файлу). В 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: Получение даты и времени.