Como agendar uma tarefa para executar 9000 segundos a partir de agora?

2

Eu tenho um script em lotes que executa alguns scripts Python e, em seguida, precisa agendar o último script Python para ser executado 9.000 segundos depois. Aqui está o que eu tenho até agora: (Eu só sei como definir manualmente um tempo)

C:\> schtasks /create /tn StockRelease /tr D:\dev\autopilot\check_reservation_timeouts.py /sc once /st 10:14

SUCCESS: The scheduled task "StockRelease" has successfully been created.

Minha pergunta é: como calcular o tempo em 9000 segundos?

Tenho certeza de que essa pergunta foi respondida em algum lugar, mas é bem provável que eu esteja pesquisando com palavras-chave erradas. Verifiquei o link da documentação da Microsoft e várias perguntas do SuperUser.

    
por jgangso 24.02.2015 / 09:40

1 resposta

3

Extraído diretamente da página de alguém que estava atrás exatamente desse mesmo requisito, copiei e colei o código abaixo:

::============================================
::GET THE CURRENT HOUR AND MINUTE + 10 MINUTES
::============================================
SET CURRENTTIME=%TIME%
for /F "tokens=1 delims=:" %%h in ('echo %CURRENTTIME%') do (set /a HR=%%h)
for /F "tokens=2 delims=:" %%m in ('echo %CURRENTTIME%') do (set /a MIN=%%m + 10)


::=======================================================
::IF THE MINUTE IS >= 60, ROLL IT OVER BY SUBSTRACTING 60
::FROM MINUTES AND ADDING 1 TO HOURS
::=======================================================
IF %MIN% GEQ 60 (
    SET /a MIN=%MIN%-60 
    SET /a HR=%HR%+1
)

::===========================================================================
::IF THE HOUR IS > 24, THEN IT IS BECAUSE WE ADDED 1 TO 24 ABOVE. SET IT TO 0
::===========================================================================
IF %HR% GTR 24 SET HR=00


::============================================
::PAD SINGLE DIGIT MINUTES WITH A LEADING ZERO
::============================================
IF %MIN% LEQ 9 (
    SET MIN=0%MIN%
)

::==========================================
::PAD SINGLE DIGIT HOURS WITH A LEADING ZERO
::==========================================
IF %HR% LEQ 9 (
    SET HR=0%HR%
)

::========================================================================
::USE THE NEW HOUR AND MINUTE (AND EXISTING SECONDS) TO CREATE THE NEW TIME
::========================================================================
SET NEWTIME=%HR%:%MIN%:%CURRENTTIME:~6,10%

Fonte: link

Você precisará adequar o restante às suas necessidades, ou seja, definir a tarefa agendada como uma tarefa única para que ela não seja repetida quando você não precisar. Eu também escreveria em seu script [que é executado quando a tarefa agendada é executada] para excluir a tarefa agendada, para que você não preencha o gerenciador de tarefas agendadas.

    
por 24.02.2015 / 11:02