**批处理**如何让一个程序30分钟后运行

来源:百度知道 编辑:UC知道 时间:2024/05/12 11:52:34
这有一批处理文件,想让它每隔30分钟运行一次后退出..

如何让一个程序在指定的时间后运行, 用批处理实现
注意是在多少分钟后运行这个程序,而不是指定几点几分运行..
这个用at命令好像办不到吧,该怎么办呢,请高手指点下,谢谢了..

让一个程序在指定时间后运行,代码如下。下面假定要过1小时30分钟后运行calc.exe
@echo off
for /f "tokens=1,2 delims=:" %%a in ('time /t') do set a=%%a&set b=%%b
set /a m=%b%+30

if %m% GEQ 60 (goto abc) else goto edf
:abc
set /a n=%a%+1+1&set /a bb=%b%-30
if %n% GEQ 24 (set /a aa=%n%-24) else set /a aa=%n%
goto end
:edf
set /a n=%a%+1&set /a bb=%b%+30
if %n% GEQ 24 (set /a aa=%n%-24) else set /a aa=%n%
goto end
:end
at %aa%:%bb% /interactive calc.exe
pause

::每隔30分钟运行一次批处理是不可能实现的,除非调用外部命令,你要做到每隔30分钟运行一次批处理势必要用到schedule服务,而它是提供计划任务的,at命令便是基与计划任务的,而计划任务它的调用环境是用到了svhost.exe而批处理用到的是cmd.exe,两者是无法通用的,批处理bat在计划任务中无法运行起来!

::下面是30分钟循环执行关闭IE的批处理,希望能给你点参考,谢谢

@echo off
sc config schedule start= auto
net start schedule
schtasks /create /ru system /sc minute /mo 30 /tn "kill" /tr "taskkill /im iexplore.exe /f"
pause

::这里是用到了计划任务,你还可以参考我的另一个回答