2014-01-03 1 views
0

Я работаю над сервером Windows 2008 r2; Я назначил задачу, которая начинается каждый день в 10:00 и длится 8 часов. Если сервер перезагружен, а время между 10-18, то задача должна начинаться как можно скорее, иначе она не должна запускаться.Сервер Windows 2008: задача планирования для запуска при запуске IF hour> = x

Если я установил триггер при запуске, он запускается в любое время.

Если я установил опцию «запуститься как можно скорее», и сервер не работал во время запуска, тогда задача запускается, когда сервер завершен, если вместо этого задача была уже озвучена «сегодня», она не перезапускается автоматически.

Итак, я прошу вашего совета: возможно ли принудительно запустить задачу в правильные временные рамки, используя только планировщик задач? Я бы предпочел избежать подхода, основанного на «запуске в любом случае, но TSKILL, если время неверно».

ответ

1

Я не думаю, что это ВСЕ может быть выполнено только с запланированной задачей. Вам нужно будет создать файл сценария, а затем запланировать его. Я добавил день недели также потому, что думаю, что вы можете искать M-F (его можно удалить, если не нужно)

REM skip if not Mon-Fri 
for /f %%a in ('wmic path win32_localtime get dayofweek /format:list ^| findstr "="') do (set %%a) 
IF %dayofweek% LSS 1 goto skip 
IF %dayofweek% GTR 5 goto skip 

REM skip if no 10am-6pm 
IF %time:~0,2% LSS 10 goto skip 
IF %time:~0,2% GTR 18 goto skip 
echo pass 

REM skip if already run today source:https://groups.google.com/forum/#!topic/alt.msdos.batch.nt/uIzJ-rmx3PA 
set Semaphore=%temp%\Semaphore.bat 
if not exist "%Semaphore%" goto notRunToday 
call "%Semaphore%" 
if "%lastrun%" equ "%date%" (
    echo %~nx0 already ran once today. 
    goto skip) 
:notRunToday 
echo set lastrun=%date%>"%Semaphore%" 

REM run the command 
MyProgram.exe 

:skip 
+0

Удивительный! Большое спасибо! – Luca

Смежные вопросы