2013-01-22 42 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