2013-07-10 24 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 
echo %time% 
IF %time:~6,2% equ 13 goto success 
goto time 

请注意,使用time环境变量是用户特定于语言环境的。

使用类似于没有区域设置格式的时间。

wmic path win32_operatingsystem get LocalDateTime 
+0

将5更改为6仍然不会使命令执行。 –

+0

这个_obviously_不适用于'10,20,30,40 ...'。 – Endoro

+0

我在编辑器里面的编辑功能对所有的0都有效 –