У меня есть командный файл, который является простым командным файлом. Вы можете взять любой пример. Как сохранить пакетный файл в цикле от начала до конца снова и снова, пока не будет достигнуто указанное время или не будет достигнут счетчик?
1 ответ
0
Если вы работаете в Windows Vista или выше, вот что может сделать то, что вы хотите. Например, этот пакетный файл запускает процесс до 11 выполнений или до 04:17, в зависимости от того, что наступит раньше, ожидая одну секунду между каждым процессом (чтобы не привязать ЦП - если у вас есть обработка файлов, вам это может не понадобиться, или Вы действительно можете привязать процессор):
@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