NSIS: Получение даты и времени.
Иногда бывает нужно получить в скрипте установки локальную дату и время, или дату и время, связанную с файлом (модификации, создания или последнего доступа к файлу). В 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
Это репост с сайта http://tolik-punkoff.com
Оригинал: https://tolik-punkoff.com/2023/03/19/nsi