답변:
내가 한 방법은 자정 직후 하루에 한 번 시작하고 다음 자정까지 실행되는 배치 파일에서 작업을 실행하는 것입니다. 이것의 장점은 하나의 스크립트이기 때문에 두 번째 인스턴스를 실행할 수 없다는 것입니다. 단점은 각 실행 후 설정된 시간을 기다리기 때문에 스크립트가 얼마나 자주 실행되는지 정확하게 예측할 수 있다는 것입니다. 어쨌든 내 스크립트에 관심이 있다면 :
rem *** Get the day number. When the day number changes that signals
rem *** the script to exit.
for /f "tokens=1" %%i in ('date /t') do set THEDATE=%%i
set THEDAY=%THEDATE:~0,2%
rem *** Open the log file
echo Starting Whatever >%LOGFILE%
date /t >>%LOGFILE%
echo . >>%LOGFILE%
rem *** Start the monitoring loop
:start
rem *** Run your script
rem Run the script here
rem *** Pause for 300 seconds
sleep 300
rem *** Check the day number. If it is still the same loop back to the
rem *** start of the monitoring loop.
for /f "tokens=1" %%i in ('date /t') do set THEDATE=%%i
if %THEDATE:~0,2% == %THEDAY% goto start
JR
일반적인 방법은 작업이 시작될 때 일부 전역 항목 (종종 빈 파일)을 테스트하는 것입니다. 존재하는 경우 작업이 이미 실행 중입니다. 그렇지 않은 경우 전역 항목을 설정하고 작업을 수행하고 작업이 완료되면 전역 항목을 설정 해제하십시오.
전역 항목을 설정 해제하지 않고 작업이 실패하면 문제가 있습니다. 컴퓨터를 다시 시작하면 작업을 실행할 수 없으므로 컴퓨터 시작 루틴에서 항상 설정을 해제 할 수 있습니다. 작업이 끝나면 자동으로 사라지는 전역 항목을 찾는 것이 좋습니다.