Files
youlegames/codes/agent/tools/autoreport.bat
2026-03-15 01:27:05 +08:00

39 lines
1.2 KiB
Batchfile

@echo off
setlocal enabledelayedexpansion
set "URL=http://localhost/ext/SynchronizeReportData.php"
set "TARGET_HOUR=04"
set "TARGET_MINUTE=00"
set "TIMEOUT=10"
set "TARGET_HOUR_PAD=0%TARGET_HOUR%"
set "TARGET_HOUR_PAD=%TARGET_HOUR_PAD:~-2%"
set "TARGET_MINUTE_PAD=0%TARGET_MINUTE%"
set "TARGET_MINUTE_PAD=%TARGET_MINUTE_PAD:~-2%"
set "TARGET_TIME=%TARGET_HOUR_PAD%:%TARGET_MINUTE_PAD%"
set "LAST_RUN_DATE="
:loop
for /f %%I in ('powershell -NoProfile -Command "Get-Date -Format yyyyMMddHHmmss"') do set "NOW=%%I"
set "CUR_DATE=!NOW:~0,8!"
set "CUR_HOUR=!NOW:~8,2!"
set "CUR_MIN=!NOW:~10,2!"
if "!CUR_HOUR!"=="%TARGET_HOUR_PAD%" if "!CUR_MIN!"=="%TARGET_MINUTE_PAD%" (
if not "!LAST_RUN_DATE!"=="!CUR_DATE!" (
for /f %%T in ('powershell -NoProfile -Command "Get-Date -Format \"yyyy-MM-dd HH:mm:ss\""') do set "STAMP=%%T"
set "STATUS="
for /f %%S in ('curl -s -o nul -w "%%{http_code}" --max-time %TIMEOUT% "%URL%" 2^>^&1') do set "STATUS=%%S"
if defined STATUS (
echo !STAMP! !TARGET_TIME! !STATUS!
) else (
echo !STAMP! !TARGET_TIME! ERROR
)
set "LAST_RUN_DATE=!CUR_DATE!"
timeout /t 65 >nul
)
) else (
timeout /t 5 >nul
)
goto loop