[Batch] 몇 시간마다 특정 URL 호출 등록

배치파일을 이용해서 특정 URL을 호출하도록 작업 스케줄러에 등록하는 과정을 배치파일로 처리하는 방법이다.

해당 코드는 ChatGPT로 생성했다.

  • 두 배치파일은 동일 경로에 존재해야 한다.

## call_url.bat

@echo off
powershell -Command "Invoke-WebRequest -Uri 'http://example.com' -UseBasicParsing"
exit
## setup_schedule.bat

@echo off
:: 현재 스크립트가 있는 디렉토리 경로 가져오기
set "scriptPath=%~dp0"

:: call_url.bat 파일의 절대 경로 지정
set "callUrlScript=%scriptPath%call_url.bat"

:: 예약 작업 이름 지정
set "taskName=CallURLEvery4Hours"

:: 기존 예약 작업 확인 및 삭제
schtasks /query /tn "%taskName%" >nul 2>&1
if %errorlevel%==0 (
    echo 기존 예약 작업이 존재합니다. 삭제 중...
    schtasks /delete /tn "%taskName%" /f
    if %errorlevel%==0 (
        echo 기존 예약 작업이 삭제되었습니다.
    ) else (
        echo 기존 예약 작업을 삭제하는 데 실패했습니다.
        exit /b 1
    )
)

:: 새로운 예약 작업 생성 (PowerShell 창 표시 안 되도록)
schtasks /create /tn "%taskName%" /tr "powershell -WindowStyle Hidden -Command \"Invoke-WebRequest -Uri 'http://example.com' -UseBasicParsing\"" /sc hourly /mo 4 /f
if %errorlevel%==0 (
    echo 새로운 예약 작업이 성공적으로 생성되었습니다.
) else (
    echo 예약 작업을 생성하는 데 실패했습니다.
    exit /b 1
)

pause

Leave a Comment