39 lines
1.2 KiB
Batchfile
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 |