2013-07-10 23 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都有效 –