批处理循环执行某一程序1小时

有一个小程序“C:\xxx.bat-n-t”执行完大概4、5分钟(并不固定),想写一个批处理来循环执行这个程序1个小时,1小时后不过子程序执行完与否强制结束,怎么实现呢?... 有一个小程序“C:\xxx.bat -n -t ”执行完大概4、5分钟(并不固定),想写一个批处理来循环执行这个程序1个小时,1小时后不过子程序执行完与否强制结束,怎么实现呢? 展开
 我来答
qop_dob
2019-02-23 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.3万
采纳率:79%
帮助的人:4030万
展开全部
@echo off
set @=q&set/an=0x53b7e0b4
title Any question +%@%%@% %n%
rem 子程序完整路径
set "subbat=D:\xxx.bat"
rem 监控时长,单位(秒)
set timer=3600

rem 计时器,xp以上系统可以用timeout命令取代
(echo;Set fso=CreateObject^("Scripting.Filesystemobject"^)
echo;bs=String^(30, Chr^(8^)^)
echo;For i=CLng^(WSH.Arguments^(0^)^) to 1 step -1
echo;    fso.GetStandardStream^(1^).write "Waiting for " ^& i ^& " seconds"
echo;    WSH.Sleep 1000
echo;    fso.GetStandardStream^(1^).write bs
echo;Next
echo;WSH.echo ""
echo;WSH.Quit)>"%tmp%\t.vbs"
(echo;while^(!WSH.StdIn.AtEndOfStream^){
echo;    var line=WSH.StdIn.ReadLine^(^).replace^(/\s*$/,''^);
echo;    var m=line.match^(/^^^(.+^)\s+^(\d+^)$/^);
echo;    WSH.echo^(m[2]+'^|'+m[1]^);}
echo;WSH.Quit^(^);)>"%tmp%\t.js"
>"%tmp%\timer.bat" echo;@echo off^&title Any question +%@%%@% %n%
>>"%tmp%\timer.bat" echo;mode con cols=50 lines=8
>>"%tmp%\timer.bat" echo;cscript -nologo -e:vbscript "%%tmp%%\t.vbs" %timer%
>>"%tmp%\timer.bat" echo;wmic Process where "Name='cmd.exe'" get CommandLine,ProcessId^|findstr "[0-9]"^|cscript -nologo -e:jscript "%%tmp%%\t.js"^>"%%tmp%%\t.log"
>>"%tmp%\timer.bat" echo;for /f "delims=^|" %%%%a in ('type "%%tmp%%\t.log"^^^|find /i "%subbat%"') do taskkill /f /pid %%%%a /t
>>"%tmp%\timer.bat" echo;for /f "delims=^|" %%%%a in ('type "%%tmp%%\t.log"^^^|find /i "%~0"') do taskkill /f /pid %%%%a
>>"%tmp%\timer.bat" echo;pause^&exit

rem 开始子程序
start "" "%subbat%" -n -t

rem 开始计时
start "" "%tmp%\timer.bat"

rem 循环监控
:loop
wmic Process where "Name='cmd.exe'" get CommandLine|find /i "%subbat%"||(
    rem 如果检测到subbat没有运行则重开
    rem 如果子程序运行完无法正常退出,在子程序代码里加上exit命令
    echo;restart at %date% %time%
    start "" "%subbat%" -n -t
)
>nul ping /n 2 0
goto :loop
云帆沧海一片
2019-02-22
知道答主
回答量:9
采纳率:66%
帮助的人:2.6万
展开全部
假设想要执行的程序是A,
另写一个程序B,在一小时内循环监测A是否结束,结束则继续运行。一小时结束后不再监测A。
至于判断程序A是否结束,可以通过一个中间文件c.txt,程序A运行开始时创建c.txt,结束时删除它。B只要判断c.txt是否存在即可知道A是否在运行中。
希望采纳。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哭泣的透明小熊
2019-02-22 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1.4万
采纳率:74%
帮助的人:3626万
展开全部
一次5分钟的话 设置让它自动执行12次不就可以了么 没必要非得一个小时整吧……
追问
并不是准确的5分钟,根据服务器端的响应情况,快可能4分钟,慢没准6分钟。我希望是一小时后不管是否是运行中途,都要强制结束
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3cc50fd
2019-02-22 · 贡献了超过1265个回答
知道答主
回答量:1265
采纳率:1%
帮助的人:82.8万
展开全部
???????
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gamevlask
2019-03-24
知道答主
回答量:8
采纳率:0%
帮助的人:7284
展开全部
@echo off

set INTERVAL=3600
:Again
echo start server
taskkill /f /t /im demo.exe
C:
cd C:\Users\Denison\Desktop\Demo
start demo.exe
timeout %INTERVAL%
goto Again
---------------------
作者:盛想飞
来源:CSDN
原文:https://blog.csdn.net/Dnison/article/details/81665535
版权声明:本文为博主原创文章,转载请附上博文链接!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式