2013-01-22 73 views
1

我想僅在特定時間(範圍)內運行批處理。僅在特定時間運行的批處理文件

例如,這個想法是讓它從07:00 AM運行到06:00 PM。

我知道%TIME%返回當前時間,現在缺少的是檢查此值的方法,如果她在範圍內,批處理將執行,否則該批將停止在那裏。

回答

1

這爲我工作(Win7的):

FOR/F 「令牌= 1-3 delims =」 %%一個在( 「%時間%」)做,如果%%一個GEQ 7如果%%一個當量18回聲你好

您可以更改echo hellogoto ok什麼,接下來的兩行是例如goto end:ok

如果直接在命令提示符下嘗試,請不要忘記將其粘貼到批處理文件或使用%a而不是%% a。

+0

謝謝您的回覆,但是事情很奇怪, 我改變回聲你好通過電子郵件藤(我想發送電子郵件或沒有)然後寫一個名爲:電子郵件的部分,發送郵件的選項。最終 但是電子郵件總是發送出去,即使我們的時間範圍之外...... 看起來像這樣:: FOR/F「令牌= 1-3 delims轉到結束 那麼,在年底後=:」 %%一個在( 「%時間%」)做,如果%%一個GEQ 7如果%%一個當量18轉到電子郵件 :電子郵件 REM **激活電子郵件** CMD/C sendemail -f email1等...「 轉到底 :結束 –

+0

忘記我的評論我發現了什麼是錯的:) –

+0

另一個問題,我們是否也可以檢查一天運行它只從星期一到星期五,即? –

0

我有一個非常簡單的解決方案,但它確實需要一定數量的處理能力才能讀取。我用它作爲有些早晨報警:

@echo off 
Cls 
echo minutes 
set /p tock= 
cls 
echo seconds (max 60) 
set /p tick= 
if %tick% gtr 60 set tick=60 

:sec 
choice /c jn /N /t 1 /d j 
IF errorlevel 2 goto pause 
cls 
if %tick%==0 goto min 
set /a tick=%tick% - 1 
echo %tock%:%tick% 
goto sec 

:min 
if %tock%==0 goto exec 
set tick=60 
set /a tock=%tock% - 1 
goto sec 

:pause 
cls 
echo %tock%:%tick% 
Echo PAUSED! (any key to continue) 
PAUSE >nul 
cls 
echo %tock%:%tick% 
goto sec 

:exec 
<put any command here> 
exit