Executando o mesmo arquivo de lote novamente a cada 30 minutos

1

Eu tenho um arquivo de lote que é apenas um arquivo de lote simples. Você pode pegar qualquer exemplo. Como posso manter o arquivo de lote em execução em um loop do início ao fim de novo e de novo, até que o tempo especificado seja atendido ou o contador seja atendido?

    
por Ashvin 17.09.2014 / 06:53

1 resposta

0

Se você estiver no Windows Vista ou superior, aqui está algo que pode fazer o que você deseja. Por exemplo, esse arquivo em lote executa um processo até 11 execuções, ou até 04:17, o que ocorrer primeiro, esperando um segundo entre cada processo (para não atrelar a CPU - se você tiver processamento de arquivo, talvez não precise disso, ou você pode realmente querer fixar a CPU):

@echo off
echo Starting Batch...
REM Use 'setlocal' so that we can use an environment variable without it leaking out to the caller.
setlocal

REM Initialize the counter to zero
set counter=0
:AGAIN

REM Increment the counter
set /A counter+=1
echo Processing loop %counter%...

REM Wait for one second so as not to peg the CPU
timeout /T 1 /NOBREAK>nul

REM Check the counter to see if we've done enough iterations--bail out if we have
if '%counter%'=='11' goto END

REM Check the time to see if the target time has been reached--if not go back and process again
FOR /F "TOKENS=1 eol=/ DELIMS=/ " %%A IN ('time /T') DO IF NOT '%%A'=='04:17' goto AGAIN

:END

REM End the local processing and go back to the main environment
endlocal
    
por 30.11.2014 / 12:21