Isso funcionará sob a suposição de que é chamado quando a máquina é inicializada.
wevtutil
é usado para pesquisar o log de eventos System
dos últimos dois eventos de inicialização ( EventID=12
) e, a partir deles, a data é extraída. Se as duas datas forem as mesmas, então esta não é a primeira startup hoje.
@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
)