Как узнать, первая ли это загрузка в текущий день?

1

У меня batchв автозапуске есть файл, который должен вести себя немного иначе при первой загрузке.

Как я могу узнать, является ли это первая загрузка в текущий день через Windows cmd? Может быть, есть какой-то способ чтения журнала событий Windows текущего дня и подсчета событий загрузки?

дас кекс
источник
Почему бы не использовать lockфайл? В пакетном файле посмотрите, существует ли файл с текущей датой. Если нет, создайте файл (это первая загрузка). если да, то это не первая загрузка. Вы можете даже привести в порядок и удалить старые файлы из предыдущих дней.
DavidPostill
Я тоже думал об этом, но, может быть, есть другой способ, не создавая файлы
das Keks,
Мое инстинктивное чувство говорит, что это проще, чем парсинг журналов событий (что, безусловно, возможно). Например, если вы посмотрите журналы событий, вы должны позаботиться о крайних случаях (например, система запускает таймер пробуждения для загрузки обновлений, например).
DavidPostill
Это может помочь.

Ответы:

1

Это будет работать в предположении, которое вызывается при загрузке машины.

wevtutilиспользуется для поиска в Systemжурнале событий последних двух событий запуска ( EventID=12), и из них извлекается дата. Если обе даты совпадают, то это не первый запуск сегодня.

@echo off
    setlocal enableextensions disabledelayedexpansion
    set "boot1="
    set "boot2="

    for /f "tokens=2 delims=T: " %%a in ('
        wevtutil qe system /count:2 /rd:true /q:"Event[System[(EventID=12)]]" /format:text 
        ^| find "Date:"
    ') do if not defined boot1 ( set "boot1=%%a" ) else ( set "boot2=%%a" )

    if "%boot1%"=="%boot2%" (
        echo This is NOT the first boot on the current day
    ) else (
        echo This IS the first boot on the current day
    )
MC ND
источник
Извините, что не отреагировал на вас, ответьте тогда. Мне очень нравится ваше решение. Я думаю, что для Windows 10 необходимы некоторые модификации, поскольку Win10 использует гибридную загрузку и просто выходит из спящего режима (событие с идентификатором 107), но в целом это то, что мне было нужно.
дас Кекс