2013-07-10 4 views
1

이것은 몇 시간 동안 작동하며, 13 시간이 지나면 루프에서 실행됩니다.배치 : 특정 시간 (초)에 실행될 명령을 얻으려고 시도합니다.

@ECHO OFF 

:time 
echo %time% 
FOR /f "tokens=1*delims=0" %%a IN ("$0%time:~0,2%") DO SET /a HH=%%b 
IF %HH% equ 13 goto success 
goto time 

:success 
echo success finally 
pause 
goto time 

하지만 난 그냥 루프에서 계속 실행 13초에 실행 명령을 실행하지 않습니다에 대한 루프에서 초 동안이 작업을 실행합니다.

@ECHO OFF 

:time 
echo %time% 
FOR /f "tokens=1*delims=0" %%a IN ("$0%time:~5,2%") DO SET /a SS=%%b 
IF %SS% equ 13 goto success 
goto time 

:success 
echo success finally 
pause 
goto time 

이 중

FOR /f "tokens=1*delims=0" %%a IN ("$0%time:~6,2%") DO SET /a SS=%%b 

나는 초 중 지정된 시간에 실행이 필요 작동하지 않습니다. 예를 들어 13 : 00 : 00.00으로 실행하는 대신. 13 : 00 : 13.00 또는 이와 비슷한 방식으로 실행할 수 있습니다.

답변

0

옵셋에 6이 아닌 5가되어야합니다.

%time:~6,2% 

복잡한 것은 아닙니다. 이것은 효과적이지만, 성취하고자하는 것에 관해 더 자세하게 설명하지 않는 한 최선의 도움을 제공 할 수는 없습니다. time 환경 변수를 사용하여 사용자 로케일 특정 것을

:time 
echo %time% 
IF %time:~6,2% equ 13 goto success 
goto time 

참고.

로케일 형식 시간과 같은 것을 사용하십시오.

wmic path win32_operatingsystem get LocalDateTime 
+0

5를 6으로 변경해도 명령이 실행되지 않습니다. –

+0

이것은 '10, 20, 30, 40 ... '에서는 작동하지 않습니다. – Endoro

+0

op의 내부 편집은 모두 0에 적용됩니다. –